sql 服务器 2008 r2 - 多列,每列都有因变量的总和
sql server 2008 r2 - multiple columns each with sum on dependent variable
我正在尝试创建一个查询,该查询将在指定时间范围内对美元金额求和并按各种因素分组。为了清楚起见,我尽可能地删除了 table,但实际上有 20 个代码 1、50 个代码 2 和 15 个标识符(每个标识符都有自己的结果列)
table t
code1 code2 date identifier dollars
A a 11/22/18 1 3
B a 11/23/18 1 4
A b 11/24/18 1 5
B b 11/25/18 1 6
A a 11/22/18 2 7
B a 11/23/18 2 8
A b 11/24/18 2 9
B b 11/25/18 2 10
期望的输出
code1 code2 identifier1_sum identifier2_sum
A a 3 7
B a 4 8
A b 5 9
B b 6 10
我似乎无法正确地进行分组和求和。任何帮助,将不胜感激。谢谢
您可以在此处使用条件聚合:
SELECT
code1,
code2,
SUM(CASE WHEN identifier = 1 THEN dollars ELSE 0 END) AS identifier1_sum,
SUM(CASE WHEN identifier = 2 THEN dollars ELSE 0 END) AS identifier2_sum
FROM yourTable
GROUP BY
code1,
code2;
我正在尝试创建一个查询,该查询将在指定时间范围内对美元金额求和并按各种因素分组。为了清楚起见,我尽可能地删除了 table,但实际上有 20 个代码 1、50 个代码 2 和 15 个标识符(每个标识符都有自己的结果列)
table t
code1 code2 date identifier dollars
A a 11/22/18 1 3
B a 11/23/18 1 4
A b 11/24/18 1 5
B b 11/25/18 1 6
A a 11/22/18 2 7
B a 11/23/18 2 8
A b 11/24/18 2 9
B b 11/25/18 2 10
期望的输出
code1 code2 identifier1_sum identifier2_sum
A a 3 7
B a 4 8
A b 5 9
B b 6 10
我似乎无法正确地进行分组和求和。任何帮助,将不胜感激。谢谢
您可以在此处使用条件聚合:
SELECT
code1,
code2,
SUM(CASE WHEN identifier = 1 THEN dollars ELSE 0 END) AS identifier1_sum,
SUM(CASE WHEN identifier = 2 THEN dollars ELSE 0 END) AS identifier2_sum
FROM yourTable
GROUP BY
code1,
code2;