我需要一些帮助来执行聚合。 我有以下声明:
SELECT name,
CASE WHEN year=2013 THEN count(ID) END AS 'Count2013',
CASE WHEN year=2012 THEN count(ID) END AS 'Count2012'
FROM Table GROUP BY year, name
并得到如下结果:
Name Count2013 Count2012
ABC NULL 14731
ABC 456 NULL
DEF NULL 5666
DEF 14439 NULL
如何获得以下结果?
Name Count2013 Count2012
ABC 456 14731
DEF 14439 5666
请注意,我尝试在没有NULL
的情况下在同一行显示结果。
答案 0 :(得分:2)
您只需要使用案例表达。
SELECT name
, sum(CASE WHEN year = 2013 THEN 1 ELSE 0 END) AS 'Count2013'
, sum(CASE WHEN year = 2012 THEN 1 ELSE 0 END) AS 'Count2012'
FROM Table GROUP BY name