image.png


    时间序列的处理,以及窗口函数, case when的使用

    1. select distinct * from
    2. (select date_format(s.pay_date, '%Y-%m') as pay_month,
    3. e.department_id,
    4. case when avg(amount) over (partition by e.department_id, s.pay_date)
    5. < avg(amount) over (partition by s.pay_date) then 'lower'
    6. when avg(amount) over (partition by e.department_id, s.pay_date)
    7. > avg(amount) over (partition by s.pay_date) then 'higher'
    8. else 'same' end as comparison
    9. from salary s left join employee e
    10. on s.employee_id = e.employee_id) a
    11. order by 1 desc