首页 > 解决方案 > SQL - 对列求和,直到其他列条件

问题描述

我有一个包含三列的表:

employee_id, days,sales

employee_id不是唯一的,因为它在天数和销售额的不同组合中重复出现。

我想制作一个包含三列的表格:

employee_id, sales - 30,sales - final

在哪里:

employee_id现在是独一无二的,

sales - 30= sum(sales)(其中天数 <= 30),以及

sales - final= 每个 ID 的总和(销售额)。

这是我正在寻找的之前/之后。任何帮助将不胜感激!

示例图片链接如下!

图像前

后像

标签: sql

解决方案


您可以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

推荐阅读