У меня есть таблицаPostgreSQL - значение MAX для каждого пользователя
User | Phone | Value
Peter | 0 | 1
Peter | 456 | 2
Peter | 456 | 3
Paul | 456 | 7
Paul | 789 | 10
Я хочу, чтобы выбрать MAX
значение для каждого пользователя, чем это также ниже, чем tresshold
Для tresshold 8, я хочу привести к быть
Peter | 456 | 3
Paul | 456 | 7
Я попытался с GROUP BY HAVING, но я получаю
column "phone" must appear in the GROUP BY clause or be used in an aggregate function
Подобная логика запросов работает в MySQL, но я не совсем уверен, как работать с GROUP BY в PostgreSQL. Я не хочу GROUP BY по телефону.
Не использовать 'group by' является недопустимым SQL и будет отклонен любой другой СУБД. Он работает только в MySQL, потому что MySQL предпочитает возвращать случайные («неопределенные») результаты, а не отклонять неверные утверждения: http://www.mysqlperformanceblog.com/2006/09/06/wrong-group-by-makes-your -queries-fragile/ –