同一语句中不同列上的SQL多次计数
问题描述:
我有一张表,其中包含世界各地的滑雪场。该表还标识了他们所在的国家和“部门”(美国/欧洲/亚洲等)。我试图确定每个部门的度假村数量。同一语句中不同列上的SQL多次计数
样本数据:
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
任何援助将不胜感激,谢谢。
答
我想你想要count(distinct)
:
select sector_id, count(distinct resort_id) as NumResorts,
count(distinct country_id) as NumCountries
from resorts
group by sector_id;
谢谢,正是我要找的。 – Jonnie 2014-10-16 20:48:21