gpt4 book ai didi

PostgreSQL - 选择多个最大计数

转载 作者:行者123 更新时间:2023-11-29 14:19:46 25 4
gpt4 key购买 nike

我正在使用 PostgreSQL。
我有一个表竞争对手,其中包含有关电子竞技游戏中竞争对手的信息。该表包含游戏 ID、参赛者的昵称和他/她扮演的角色的名称。

我想选出每一个昵称和他们玩得最多的角色。
例如,如果竞争对手 Faker 扮演角色 Ryze 4 次,Lulu 3 次,我希望输出中包含 Faker Ryze 4

这是我目前所拥有的:

select nick, character, count(*) as played
from competitor
group by nick, character
order by nick;

但随后我在输出中得到了 Faker Ryze 4Faker Lulu 3
我尝试过使用 max() 和嵌套,但我无法弄明白。

最佳答案

这样就可以了。

SELECT nick, character,played
FROM
(SELECT s1.*,
row_number() OVER (PARTITION BY nick
ORDER BY played DESC) AS row1
FROM
(SELECT nick, character, COUNT(*) AS played
FROM competitor
GROUP BY nick, character
ORDER BY nick,
COUNT(*) DESC) s1)s2
WHERE row1=1;

查询是 100% 正确的。 SQL fiddle here .此外,它是唯一可以轻松支持同一昵称的查询(通过将 row_number() 更改为 rank())并避免不必要的 JOIN.

关于PostgreSQL - 选择多个最大计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33260584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com