2012-01-08 5 views
4

У меня есть таблица со структурой: id(INT PK), title(VARCHAR), date(DATE)SQL грамматика SELECT MIN (ДАТА)

Как выбрать все различные названия с ранней датой?

По-видимому, SELECT DISTINCT title, MIN(date) FROM table не работает.

+3

Не вызывайте столбец 'date', если вы можете его избежать. Это только вызовет проблемы в долгосрочной перспективе. – Ben

ответ

14

GROUP BY вместо DISTINCT, если вы хотите использовать функцию агрегации ЦИИ.

SELECT title, MIN(date) 
FROM table 
GROUP BY title 
5

Агрегатная функция требует GROUP BY в стандарте SQL

Это «Получить минимальный срок за титул» на простом языке

SELECT title, MIN(date) FROM table GROUP BY title 

Большинство РСУБД и стандарт требует, чтобы столбец либо в GROUP BY или в функциях (MIN, COUNT и т. Д.): MySQL является заметным исключением с некоторыми расширениями, которые дают непредсказуемое поведение.