У Elizabeth Castro есть интересная статья об этой проблеме: До свидания Встраивают . Стоящий чтения о том, как она принялась за решение этой проблемы, а также обработки содержание QuickTime.
Что ж, как вы ожидаете, что Postgres определит, какое значение occured_at использовать при создании порядка сортировки?
Я не знаю особенно синтаксис Postgres, но вы можете попробовать:
SELECT DISTINCT city, state, country, MAX(occured_at)
FROM events
WHERE (city > '') AND (number_id = 123) ORDER BY MAX(occured_at) ASC
или
SELECT city, state, country, MAX(occured_at)
FROM events
WHERE (city > '') AND (number_id = 123)
GROUP BY city, state, country ORDER BY MAX(occured_at) ASC
Предполагается, что вы хотите отсортировать результаты по НАИБОЛЕЕ ПОСЛЕДНИМ появлению. Если вы хотите первое вхождение, измените MAX на MIN.
Кстати, в вашем заголовке спрашивается о GROUP BY, но в вашем синтаксисе указано DISTINCT.