sql - 你如何获得按天计算的值的总和,但在 SQL 列中按天计算
问题描述
我有一个如下所示的表,其中存储了 day、client_name 和 order_value/
select day, client_name, order_value
from sample_table
天 | 客户名称 | 订单价值 |
---|---|---|
2021-01-01 | 一个 | 100 |
2021-01-01 | 一个 | 100 |
2021-01-02 | 一个 | 200 |
2021-01-03 | 一个 | 100 |
2021-01-01 | 乙 | 300 |
2021-01-01 | 乙 | 400 |
2021-01-01 | C | 500 |
2021-01-02 | C | 500 |
2021-01-02 | C | 500 |
我想按天获得每个客户的 order_value 总和,但按天计算。基本上,我希望我的结果是这样的。
客户名称 | 2021-01-01 | 2021-01-02 | 2021-01-03 |
---|---|---|---|
一个 | 200 | 200 | 100 |
乙 | 700 | 无效的 | 无效的 |
C | 500 | 1000 | 无效的 |
解决方案
如果您知道日期是什么,则可以使用条件聚合:
select client_name,
sum(case when date = '2021-01-01' then order_value end) as date_20210101,
sum(case when date = '2021-01-02' then order_value end) as date_20210102,
sum(case when date = '2021-01-03' then order_value end) as date_20210103
from t
group by client_name ;
如果您不知道具体的日期(即,您希望它们基于数据或变量号),那么您需要使用动态 SQL。这意味着您将 SQL 语句构造为字符串,然后执行它。
推荐阅读
- vb.net - “运行”功能的问题
- c++ - fscanf 返回无意义的值
- node.js - 无法为节点构建本机包
- localhost - data-item-url 位于 localhost 而不是 pythonanywhere (wagtail + snipcart 项目)
- go - Golang 泛型 - 简单用例
- python - WindowsError:[错误 998] 在 python 中使用 ctypes 时
- gif - 如何为 .GIF 文件压缩 LZW 编码的图像数据?
- machine-learning - one-hot 编码是否会导致特征不平衡的问题?
- javascript - 使用基于选定的一个 ActionResult 从不同表中获取结果
- r - 如何在 r 中更改树形图的颜色