sql - 类别值分为多列?
问题描述
我有一张这样的桌子:
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
但是,结果是一个单一的“值”列表,这不是我想要的。
解决方案
推荐阅读
- javascript - 我想改成箭头函数
- python - 试图掠夺为足球运动员提供奖学金但遇到问题的学校
- python - pd.read_html 将表作为具有单列的数据框返回
- amazon-web-services - 未创建状态检查失败的 CloudWatch 警报
- java - JavaFX 文本字段导致编译错误
- excel - Excel INDEX/MATCH,但列并不总是在同一个地方
- javascript - JavaScript Fetch 无法返回调用其他函数的值
- php - 我可以将变量从 Laravel 的观察者传递给刀片吗?
- html - 为什么我的网页显示的是html代码而不是渲染
- python - 我的 jupyter notebook 内核经常死于这个 pygame 代码