【发布时间】:2021-03-29 14:35:55
【问题描述】:
我有两张桌子 - ticket(..,event_name,..) 和 event(..,name,..).
任务:
编写一个查询,显示活动名称和售出最多门票的活动门票数量。
下面的代码报错:ERROR: calls to aggregate functions cannot be nested
SELECT name, COUNT(event_name) as ticket_count
FROM event
INNER JOIN ticket
ON event.name = ticket.event_name
GROUP BY name
HAVING COUNT(event_name) = MAX(COUNT(event_name));
我知道我不能使用MAX(COUNT()),但是我应该写什么来代替它来获得类似的逻辑?
我只有讲师的提示:)
COUNT(...)= (SELECT MAX(...) FROM (...))
【问题讨论】:
-
你不能在有语句中使用 MAX(COUNT())
-
顺便说一句,在您的查询中,表
event是不必要的。select event_name, count(*) as ticket_count from ticket group by event_name order by ticket_count desc limit 1;
标签: postgresql function count max aggregate