如何在结果中按组进行SQL JOIN和COUNT行COUNT?

时间:2017-11-22 10:31:59

标签: sql join group-by count

我有两个表country_champions和玩家。我需要通过字段contry / nationality加入它并按国籍计算玩家(第二个表中的第一行是坏的,必须删除)。 我怎么能这样做? 结果必须是:

id   nationality   wins   players
---------------------------------
1    Brazil        5      1
2    Germany       4      1
3    Italy         4      2
4    Argentina     2      5
5    Uruguay       2      0
6    France        1      0
7    Spain         1      1

country_champions

id   country   wins
-------------------
1    Brazil    5
2    Germany   4
3    Italy     4
4    Argentina 2
5    Uruguay   2
6    France    1
7    Spain     1

玩家

id  name       club       nationality  wins
-------------------------------------------
1   id  name   club       nationality  wins
2   Bob Dylan  Villariba  Brazil       5
3   Chuck Nor  Barselona  USA          3
4   Ronaldo    Barselona  Germany      7
5   Brutallo   Real M     Italy        7
6   Max        Real N     taly         5
7   Mudila     Dynamo     Spain        3
8   Chuvila    Dynamo     Ukraine      3
9   Chuvila    Dynamo     Argentina    3
10  Player1    Dynamo     Argentina    4
11  Player2    Dynamo     Argentina    5
12  Player3    Dynamo     Argentina    8
13  Player4    Dynamo T   Argentina    8

1 个答案:

答案 0 :(得分:0)

尝试离开加入玩家表,然后进行计数():

Select c.id,
   c.country,
   c.wins,
   count(p.name) as players
from country_champions c
left outer join players p
   on c.country = p.nationality 
group by c.id,
   c.country,
   c.wins