SQL多重计数在同一语句中的不同列上

时间:2014-10-16 20:31:14

标签: mysql sql count

我有一张桌子,里面有世界各地的滑雪胜地。该表还确定了他们所在的国家和“部门”(美国/欧洲/亚洲等)。我正在尝试确定每个部门的度假村数量。

示例数据:

resort_id, resort_name, country_id, sector_id
3376       Chréa            204     204
3377       Tikjda           204     204
3384       Beidahu          208     205
3481       Canyon Ski Area  225     206
3482       Castle Mountain  225     206
3483       Drumheller       226     206
3933       Uuperi           240     207
3934       Salomonkallio    240     207
3935       Chabanon         241     207
3936       Le Fanget        242     207

我需要能够确定每个部门的度假村和国家数量,即:

Sector    Resorts   Countries
-----------------------------
204          2         2
205          1         1
206          3         2
207          4         3

我需要的陈述是:

select sector_id,
       count(*),
       // count the number of countries in each sector
from   resorts
group by sector_id

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

我想你想要count(distinct)

select sector_id, count(distinct resort_id) as NumResorts,
       count(distinct country_id) as NumCountries
from resorts
group by sector_id;