# 请你写出SQL语句查询在2025年投递简历的每个岗位,每一个月内收到简历的数目,和对应的2026年的同一个月同岗位,收到简历的数目,最后的结果先按first_year_mon月份降序,再按job降序排序显示.
# 思路:两次查询统计出2025年的信息和2026年的信息,然后用月份和岗位作为连接键连接两张表。
-- 定义第一个CTE(公共表表达式)a,用于查询2025年每个岗位每个月收到的简历数目
with
a as
(
select job,
date_format(date,'%Y-%m') as first_year_mon, -- 格式化日期为YYYY-MM
sum(num) as first_year_cnt -- 计算每个岗位每个月收到的简历总数
from resume_info
where left(date,4) = 2025 -- 过滤出2025年的数据
group by job, first_year_mon -- 按岗位和月份分组
),
-- 定义第二个CTE b,用于查询2026年每个岗位每个月收到的简历数目
b as
(
select job,
date_format(date,'%Y-%m') as second_year_mon, -- 格式化日期为YYYY-MM
sum(num) as second_year_cnt -- 计算每个岗位每个月收到的简历总数
from resume_info
where left(date,4) = 2026 -- 过滤出2026年的数据
group by job, second_year_mon -- 按岗位和月份分组
)
-- 查询两个CTE的结果,并按要求进行连接和排序
select a.job,
first_year_mon,
first_year_cnt,
second_year_mon,
second_year_cnt
from a
join b on a.job = b.job and right(first_year_mon,2) = right(second_year_mon,2) -- 连接条件:岗位相同且月份相同
order by first_year_mon desc, a.job desc -- 按月份降序,再按岗位降序排序