sql - SQL - 对列求和,直到其他列条件
问题描述
我有一个包含三列的表:
employee_id
, days
,sales
employee_id
不是唯一的,因为它在天数和销售额的不同组合中重复出现。
我想制作一个包含三列的表格:
employee_id
, sales - 30
,sales - final
在哪里:
employee_id
现在是独一无二的,
sales - 30
= sum(sales)(其中天数 <= 30),以及
sales - final
= 每个 ID 的总和(销售额)。
这是我正在寻找的之前/之后。任何帮助将不胜感激!
示例图片链接如下!
解决方案
您可以conditional aggregation
为此使用:
select employee_id,
sum(case when days <= 30 then sales end) as sales30,
sum(sales) as allsales
from yourtable
group by employee_id
推荐阅读
- javascript - Google chrome 版本 72.0.3626.81 错误或代码错误?
- html - css 选择器 :empty for tr 不起作用
- r - 修复在 R 中模拟索引和匹配的循环
- amazon-web-services - 在 Amazon Redshift Spectrum 中加载外部表时如何跳过最后几条记录?
- r - 按组检查是否存在基于其他列的先前条目
- php - php数组合并重复发生
- ios - 新 PDF 中的 Rander PDFAnnotation
- mysql - MySQL查询以从表中输出带有列标题的数据
- python - 用于监控设备的 Python 脚本
- sql - SQL 根据其他值分组除以选择