Добрый вечер.
Имеется некая таблица, хранящая конфигурации компьютеров (id, inv_number, date, proc, memory, ...). При изменении конфигурации добавляется новая строка, которая гарантированно совпадает с записью о предыдущей версии конфига только полем inv_number (остальное может измениться). Необходимо составить список актуального оборудования (т.е. записи с последними датами)
Знаний по sql не особо много, но есть 2 мысли. Первая - использовать подзапрос
select *
from pc pc1
where pc1.date = (select max(date) from pc pc2 where pc1.inv_number = pc2.inv_number)
В целом работает, но смущает выполнение подзапроса для каждой записи, что не есть хорошо для производительности. Вторая мысль была связана с группировкой по inv_number, но я имею понятия как потом вывести строки с max(date).
В общем, подскажите как лучше сделать или натолкните на путь истинный.
UPD: Воистину, накосячил с условием в подзапросе...
SQL Fiddle