Я попытался написать следующий запрос с HAVING
пунктом, чтобы избежать написаний подзапроса и, следовательно, сделать запрос немного менее читаемого .:Что не так с предложением HAVING?
SELECT partner_id, player_id, currency_id, platform_id
FROM account
GROUP BY partner_id, player_id, currency_id, platform_id
HAVING MAX(date) = date
Мне нужно, чтобы получить все строки, сгруппированные по тому, что я указал в пункте GROUP BY
, имеющем max date
. Но я получил ошибку около
ERROR: column "account.date" must appear in
the GROUP BY clause or be used in an aggregate function
Я использовал его в функции агрегата. Что не так?
Что случилось с 'где максимум (дата) = date'? Если вы хотите использовать 'have', вам нужно группировать столбец в разделе' having'. – Smutje
Агрегаты @Smutje не разрешены в разделе where – user3663882
Что именно вы хотите выполнить? Вам нужна одна строка для каждой группы (строка с максимальной датой)? Если да, то функции окна (как предложено Damien_The_Unbeliever) - это путь. Если нет, добавьте образец ввода и ожидаемый результат в свой вопрос. –