select s1.job,
left(s1.date,7) as 'first_year_mon',
s1.cnt as'first_year_cnt',
left(s2.date,7) as 'second_year_mon',
s2.cnt as 'second_year_cnt'
from (
select job, date,sum(num) cnt from resume_info
where year(date) = '2025'
group by job ,month(date)) s1
join (
select job, date,sum(num) cnt from resume_info
where year(date) = '2026'
group by job ,month(date)) s2
on
s1.job = s2.job and
month(s1.date) = month(s2.date)
order by first_year_mon desc ,s1.job desc
- 本题解析
本题难点在于
1.日期截取和日期的函数的灵活应用
2.按照job和月份同时进行分组
3.将两个分组好的查询数据集通过job和月份拼接到一起
4.一个order里面出现多个条件