程序笔记   发布时间:2022-07-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了LeetCode 【困难】数据库-第615:平均工资:部门与公司比较(Case when ‘分类’ )大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

题目:给如下两个表,写一个查询语句,求出在每一个工资发放日,每个部门的平均工资与公司的平均工资的比较结果 (高 / 低 / 相同)。

LeetCode 【困难】数据库-第615:平均工资:部门与公司比较(Case when ‘分类’ )

1. 不同月份、不同部门的平均工资(group by 两个字段)

SELEct date_format(pay_date,'%Y-%m') as pay_month,department_id,avg(amount) as e_m_d_avg
from salary s left join employee e
on s.employee_id=e.employee_id
group by department_id,pay_month

LeetCode 【困难】数据库-第615:平均工资:部门与公司比较(Case when ‘分类’ )

2. 不同月份、公司的平均工资

SELEct date_format(pay_date,'%Y-%m') as pay_m,avg(amount) as company_avg
from salary
group by pay_m

LeetCode 【困难】数据库-第615:平均工资:部门与公司比较(Case when ‘分类’ )

3.拼接、case when .条件. then .A. when .条件. then .b. else .C. end as 字段名

SELEct pay_month,department_id,
case when e_m_d_avg > company_avg then 'higher' 
                                    when e_m_d_avg < company_avg then 'lower' else 'same' end as comparison
from(
SELEct date_format(pay_date,'%Y-%m') as pay_month,department_id,avg(amount) as e_m_d_avg
from salary s left join employee e
on s.employee_id=e.employee_id
group by department_id,pay_month
) a,

(
SELEct date_format(pay_date,'%Y-%m') as pay_m,avg(amount) as company_avg
from salary
group by pay_m
) b
where pay_month=pay_m 
order by department_id,pay_month;

LeetCode 【困难】数据库-第615:平均工资:部门与公司比较(Case when ‘分类’ )

大佬总结

以上是大佬教程为你收集整理的LeetCode 【困难】数据库-第615:平均工资:部门与公司比较(Case when ‘分类’ )全部内容,希望文章能够帮你解决LeetCode 【困难】数据库-第615:平均工资:部门与公司比较(Case when ‘分类’ )所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。