gpt4 book ai didi

mysql - 如何找到多个最大计数

转载 作者:行者123 更新时间:2023-11-29 05:54:50 25 4
gpt4 key购买 nike

假设我们有这些表:

流派:

genre_id    genre_name 
1 comedy
2 horror
3 action

Actor :

actor_name    genre_id
stef 2
panos 2
bill 2
panos 2
bill 3
stef 3
panos 3
bill 3
stef 1
stef 1

我想为每种类型找到在该类型电影中扮演最多角色的 Actor (不需要电影栏,这就是为什么它不存在)。

我想要的结果是:

comedy  stef  2
horror panos 2
action bill 2

最佳答案

试试这个查询:

select genre_name, actor_name, cnt from (
select actor_name,
genre_name,
cnt,
row_number() over (partition by genre_name order by cnt desc) `rn`
from (
select actor_name, genre_name, count(*) `cnt` from actors `a`
join genres `g` on a.genre_id = g.genre_id
group by actor_name, genre_name
) `a`
) `a` where rn = 1;

注意

上面的uery使用了windowed functions,这是MySQL 8.0引入的,所以如果你使用的是更早的版本,这个查询会导致错误。

关于mysql - 如何找到多个最大计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50562009/

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