Sql 同一行中的聚合
我需要一些执行聚合的帮助。 我有以下声明:Sql 同一行中的聚合,sql,sql-server,tsql,Sql,Sql Server,Tsql,我需要一些执行聚合的帮助。 我有以下声明: 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
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的结果。您只需要使用大小写表达式
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
相关子查询?选择从…起哪里作为CustomCol?@g.d.d.c-无需多次触碰桌面。只需要使用一些条件。见下面我的答案。