获取group by中所有可能的不同条目的聚合值

时间:2013-09-18 19:29:08

标签: sql

好的,我知道标题令人困惑,但这个想法非常简单。我只需要弄清楚在给定时间段内在五个不同地点飞行的航班数量。有时一个站点在此期间不会有任何航班,这就是我遇到问题的地方。如果我使用:

select count(*)
from Flight
where date between '9/9/2013' and '9/15/2013'
group by Site
order by Site

我只会获得实际飞行的网站,但我希望那些在此期间没有航班的网站(但在其他时间飞行并且在表中有记录)仍然返回值0

1 个答案:

答案 0 :(得分:1)

使用条件求和。也就是说,将where子句移动到case语句:

select sum(case when date between '9/9/2013' and '9/15/2013' then 1 else 0 end)
from Flight
group by Site
order by Site;
相关问题