Leetcode刷题记之平均工资:部门与公司比较

比较部门平均工资与公司平均工资

题目来源:leetcode 615

解题思路:求出每个部门的平均工资 ---> 求出公司的平均工资 ----> 两者关联对比

求出每个部门的平均工资

SELECT substr(pay_date,1,7) pay_month, department_id, AVG(amount) avg_dept
FROM salary a, employee b
WHERE a.employee_id = b.employee_id
GROUP BY pay_month, department_id

Note: 也可以用 date_format(pay_date,'%Y-%m') 来获得月份

输出:

② 求出公司的平均工资

SELECT substr(pay_date,1,7) pay_month, AVG(amount) avg_cpy
FROM salary
GROUP BY pay_month 

输出:

③ 关联对比

SELECT c.pay_month, c.department_id,
	 (CASE WHEN c.avg_dept > d.avg_cpy THEN 'higher'
           WHEN c.avg_dept < d.avg_cpy THEN 'lower'
           ELSE 'same' END) AS 'comparison'
FROM(
    SELECT substr(pay_date,1,7) pay_month, department_id, AVG(amount) avg_dept
    FROM salary a, employee b
    WHERE a.employee_id = b.employee_id
    GROUP BY pay_month, department_id) c
LEFT JOIN (
 		SELECT substr(pay_date,1,7) pay_month, AVG(amount) avg_cpy
		FROM salary
		GROUP BY pay_month )d
ON c.pay_month = d.pay_month

输出:

DONE !

发布了11 篇原创文章 · 获赞 0 · 访问量 233

猜你喜欢

转载自blog.csdn.net/weixin_44900533/article/details/105604337
今日推荐