SQL
问题
查询在2025年投递简历的每个岗位,每一个月内收到简历的数目,和对应的2026年的同一个月同岗位,收到简历的数目,最后的结果先按first_year_mon月份降序,再按job降序排序显示。
解题
1.先查看2025年内每月各岗位简历数目,代码如下:
select job,
date_format(date,'%Y-%m') first_year_month,
sum(num) first_year_cnt
from resume_info
where year(date)=2025
group by job,first_year_month
得到查询结果,如下:
2.同理,得到2026年每月各岗位简历数目,如下:
3.将两个查询结果放在一起,用 (inner)left join 连接,值得注意的是无法使用month(‘2025-01’) 提取月份,需要保证日期的完整,即形如年-月-日(‘2025-01-13’),才可以使用month(‘2025-01-13’)提取出相应的月份;该部分为了满足链接限制条件(on),使用字符串公式:right()和left()函数,相应函数介绍如下:
4.限制条件是:job对应一致,月份对应一致,年份相差1,因此完整代码如下:
select job