一个查询中有两个不同的 group by 子句?

use*_*106 2 postgresql

第一次在这里发帖,SQl 的新手,我不确定如何表达,但我会尽力而为。

我有一个疑问:

select report_month, employee_id, split_bonus,sum(salary) FROM empsal
where report_month IN('2010-12-01','2010-11-01','2010-07-01','2010-04-01','2010-09-01','2010-10-01','2010-08-01') 
AND employee_id IN('100','101','102','103','104','105','106','107')
group by report_month, employee_id, split_bonus;
Run Code Online (Sandbox Code Playgroud)

现在,对于这个查询的结果,我想添加一个新列split_bonus_cumulative,它本质上相当于在select子句中添加一个sum(split_bonus),但对于这种情况,团购应该只有report_month和employee_id。

谁能告诉我如何用一个查询来做到这一点?提前致谢。

Ale*_*eem 5

尝试:

SELECT
  report_month, 
  employee_id, 
  SUM(split_bonus), 
  SUM(salary) 
FROM 
  empsal
WHERE 
  report_month IN('2010-12-01','2010-11-01','2010-07-01','2010-04-01','2010-09-01','2010-10-01','2010-08-01')
AND 
  employee_id IN('100','101','102','103','104','105','106','107')
GROUP BY 
  report_month, 
  employee_id;
Run Code Online (Sandbox Code Playgroud)