Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 同一行中的聚合_Sql_Sql Server_Tsql - Fatal编程技术网

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-无需多次触碰桌面。只需要使用一些条件。见下面我的答案。