WITH counted AS (SELECT gameid, count(gameid) AS count FROM games GROUP BY gameid)
SELECT gameid, count
FROM counted
WHERE count = (SELECT max(count) FROM counted);
SELECT GAMEID, COUNT(GAMEID) AS CNT
FROM GAMES
GROUP BY GAMEID
ORDER BY COUNT(GAMEID) DESC
LIMIT 1;
如果你想找到拥有最高计数的游戏,包括可能的平局,那么 RANK 分析函数在这里提供了一个选项:
WITH cte AS (
SELECT GAMEID, COUNT(GAMEID) AS CNT, RANK() OVER (ORDER BY COUNT(GAMEID) DESC) rnk
FROM GAMES
GROUP BY GAMEID
)
SELECT GAMEID, CNT
FROM cte
WHERE rnk = 1;
4条答案
按热度按时间pqwbnv8z1#
如果您希望有多行具有相同的计数,那么可以使用窗口函数来执行此操作并处理这些关系。
您没有指定dbms产品,但以下是100%ansi标准sql:
在线示例
h9vpoimq2#
由于听起来您使用的是过时的sqlite版本,无法使用窗口函数,因此下面是另一种处理关系的方法:
aor9mmx13#
您可以将“limit1”添加到查询的末尾,它将只显示一个结果。但是,如果两个条目有相同的结果,那么显示哪一个是任意的。
5jdjgkvh4#
如果你不在乎领带,那就用吧
LIMIT
:如果你想找到拥有最高计数的游戏,包括可能的平局,那么
RANK
分析函数在这里提供了一个选项: