【问题标题】:MySQL - Query and group in a single rowMySQL - 在一行中查询和分组
【发布时间】:2021-09-18 23:55:10
【问题描述】:

我有一组数据如下:

EmployeeId Salary_Basic Salary_Transport Year
E001 12000 3000 2018
E002 9000 2000 2018
E001 13000 3200 2019
E002 10000 2400 2019
E003 15000 5000 2019

我想要的如下:

EmployeeID NetSalary_Year2018 NetSalary_Year2019
E001 15000 16200
E002 11000 12400
E003 0 20000

谁能推荐一下 MySQL 上的 sql 查询?

谢谢

【问题讨论】:

  • 使用条件聚合。

标签: mysql sql group-by merge


【解决方案1】:

正如@Akina 所说,使用“条件聚合”。

例如:

select
  employeeid,
  sum(case when year = 2018 then salary_basic + salary_transport else 0 end) as net_salary_2018,
  sum(case when year = 2019 then salary_basic + salary_transport else 0 end) as net_salary_2019
from t
group by employeeid

【讨论】:

  • 谢谢!效果很好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-17
  • 2013-11-29
  • 2014-06-14
  • 2021-04-03
  • 2011-08-20
  • 1970-01-01
相关资源
最近更新 更多