算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
今天和大家聊的问题叫做 平均工资:部门与公司比较,我们先来看题面:
https://leetcode.cn/problems/average-salary-departments-vs-company/
解题
先求出每个部门每个月的平均工资
再求公司每个月的平均工资
连表查,case when 比较
select t1.pay_month, t1.department_id,
case when t1.am > t2.am then 'higher' when t1.am < t2.am then 'lower' else 'same' end comparison
from
(
select DATE_FORMAT(pay_date,'%Y-%m') pay_month, department_id , avg(amount) am
from salary s, employee e
where s.employee_id = e.employee_id
GROUP BY pay_month, department_id
) t1,
(
select DATE_FORMAT(pay_date,'%Y-%m') pay_month, avg(amount) am from salary GROUP BY pay_month
) t2
where t1.pay_month = t2.pay_month
上期推文: