我有一张这样的桌子:
DateKey | Category | Value
----------+-----------+---------
20190102 | CAT1 | 12
20190502 | CAT2 | 13
20190502 | CAT2 | 16
20190102 | CAT1 | 2
20190102 | CAT3 | 22
....
我想要这样的结果。
列是根据SQL语句自动生成的
DateKey | CAT1SUM | CAT2SUM | CAT3SUM
----------+-----------+-----------+-----------
20190102 | 14 | 0 | 22
20190502 | 0 | 29 | 0
我知道如何使用已知的类别进行此操作,但是问题是类别数量未知,但是数量不是太多(小于20)。我知道我可以编写一个存储过程/函数,但是可以将其归档在尽可能少的sql语句中吗?最有效的方法是什么?
我知道我可以得到一个这样的单列表
SELECT
DateKey, Category, SUM(Value) SummedValue
FROM
MyTable
GROUP BY
DateKey, Category
但是,结果是一个“值”列表,这不是我想要的。