sql - SQL如何将列转换为变量
问题描述
假设我有一张看起来像这样的桌子
Type Day Volume
"C1" Tuesday 10
"C1" Monday 10
"C2" Tuesday 10
"C2" Monday 10
将其转换为看起来像这样的表格的最有效方法是什么?
Day C1 C2
Tuesday 10 10
Monday 10 10
理想情况下,我只需使用 group by 就可以在没有任何 PIVOT 功能的情况下做到这一点。
感谢您的时间和帮助。如果您需要更多信息,请告诉我。
解决方案
您可以使用条件聚合来做到这一点:
select day,
max(volume) filter (where type = 'C1') as c1,
max(volume) filter (where type = 'C2') as c2
from the_table
group by day;
推荐阅读
- xml - 为什么使用 Ansbile XML 模块在带有名称空间的 XML 文档中得到“不引用节点”?
- smartsheet-api - Smartsheet - How to find total number of pages in a sheet?
- python - 在初始化时更新 Python dict
- jquery - jquery - 带有和-或的多个过滤器
- django - Django Heroku 部署中没有名为“XXXXXXXX”的模块
- javascript - 每次单击 jQuery 按钮时隐藏/重置结果
- apache - 有条件地重写 url 并使所有内容小写
- computer-vision - 如何使用/重用视觉 SLAM 中生成的地图
- netlogo - 两个不相关的条件 - 预期的命令错误
- php - Laravel 将数组合并为一个数组