2015-07-21 63 views
0

我有一个联盟球员的模式,看起来像下面的模式。SQL中的最大数量

Player (playerid integer, mentorid integer, leagueid integer, pay integer) 
League (leagueid integer, leaguename text) 

我想找到有球员和解决方案的最大数量应当考虑的场景,有玩家最大数量的结果,却应该有超过一个联赛联赛 - leaguename,玩家数量由leaguename.How排序我明白吗?

+1

数据库使用? –

+5

这是你要求人们为你做的功课吗? –

+0

我有同样的感觉^^ – Worldgorger

回答

1
with x as (
select l.leaguename, count(distinct p.playerid) as player_count 
from player p join league l on p.leagueid = l.leagueid 
group by l.leaguename) 
, y as (select max(player_count) player_count from x) 
select x.leaguename, y.player_count 
from x join y on x.player_count = y.player_count 
order by x.leaguename 
1

你可以试试这个:

select leaguename, player_count from League l,(
select leagueid, count(leagueid) as player_count from Player 
group by leagueid having count(leagueid) >= All (select count(leagueid) from Player group by leagueid)) t 
where l.leagueid = t.leagueid 
order by leaguename