题解 | #实习广场投递简历分析(三)#

实习广场投递简历分析(三)

https://www.nowcoder.com/practice/83f84aa5c32b4cf5a75558d02dd7743c

题目描述

我们有一个表:

  • resume_info:包含简历投递信息,包括记录ID id、岗位名称 job、投递日期 date 和投递数量 num

目标是查询出在2025年和2026年每个月每个岗位收到的简历数量,并将2025年和2026年同一个月的同一岗位的简历数量进行对比。结果需要按2025年的月份降序排列,然后按岗位名称降序排列。

知识点

  • 日期函数:使用YEAR函数提取日期中的年份,使用DATE_FORMAT函数格式化日期为YYYY-MM格式。
  • 聚合函数:使用SUM函数计算每个月每个岗位的简历投递总数。
  • 分组:使用GROUP BY子句按月份和岗位分组。
  • 连接操作:使用JOIN连接2025年和2026年的数据。
  • 排序:使用ORDER BY子句按月份和岗位名称降序排列结果。

关键问题分析

1. 提取2025年每个月每个岗位的简历数量

我们使用DATE_FORMAT函数格式化日期为YYYY-MM格式,并使用SUM函数计算每个月每个岗位的简历投递总数:

select
    job, date_format(date, "%Y-%m") as first_year_mon,
    sum(num) as first_year_cnt
from resume_info
where year(date) = 2025
group by job, first_year_mon
  • DATE_FORMAT(date, "%Y-%m") AS first_year_mon: 格式化日期为YYYY-MM格式。
  • SUM(num) AS first_year_cnt: 计算每个月每个岗位的简历投递总数。
  • GROUP BY job, first_year_mon: 按月份和岗位分组计算投递总数。

2. 提取2026年每个月每个岗位的简历数量

类似地,我们提取2026年每个月每个岗位的简历数量:

select
    job, date_format(date, "%Y-%m") as second_year_mon,
    sum(num) as second_year_cnt
from resume_info
where year(date) = 2026
group by job, second_year_mon

3. 连接2025年和2026年的数据

我们使用JOIN连接2025年和2026年的数据,确保同一个月的同一岗位进行对比:

on right(r1.first_year_mon, 2) = right(r2.second_year_mon, 2) and r1.job = r2.job
  • RIGHT(r1.first_year_mon, 2) = RIGHT(r2.second_year_mon, 2): 确保月份相同。
  • r1.job = r2.job: 确保岗位相同。

4. 排序输出

我们按2025年的月份降序排列,然后按岗位名称降序排列输出结果:

order by r1.first_year_mon desc, r1.job desc

完整代码

select r1.job, r1.first_year_mon, r1.first_year_cnt, r2.second_year_mon, r2.second_year_cnt
from (
    select
        job, date_format(date, "%Y-%m") as first_year_mon,
        sum(num) as first_year_cnt
    from resume_info
    where year(date) = 2025
    group by job, first_year_mon
) r1
join (
    select
        job, date_format(date, "%Y-%m") as second_year_mon,
        sum(num) as second_year_cnt
    from resume_info
    where year(date) = 2026
    group by job, second_year_mon
) r2 on right(r1.first_year_mon, 2) = right(r2.second_year_mon, 2) and r1.job = r2.job
order by r1.first_year_mon desc, r1.job desc;
全部评论
没有考虑,2025年某月份某职位有简历投递,而2026年同月份的同一职位没有简历投递的情况么?内连接岂不是会漏掉啊,这怎么解决的?
点赞 回复 分享
发布于 06-05 21:04 河北

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
08-13 17:06
工作未能按时完成,有bug,leader晚上边帮我改边骂比如:你好蠢啊你好笨啊学在学校都怎么学的你是不是不适合干开发啊……之类的啊……我真的会这么笨吗🙃
金俊涛:实习而已啦,没必要把他们话放在心上,多积累经验,多提升自己才是真的。至于业绩关你吊事,干俩月就走了,谁也怪不到你一个实习生身上
实习的内耗时刻
点赞 评论 收藏
分享
家里人这种思想对吗?最近找到了某大厂算法岗的实习,家里人一直跟我说要给领导买点东西,搞好关系,我真的搞不清楚他们这种思想到底怎么来的,真的很烦他们教我做事,他们总觉得自己是对的,我不照着他们的想法做,就觉得我态度不对,之前找实习也是只会嘴巴上对我说你要加油,你要努力,但是根本不知道我背后付出了多少努力,真的好烦被教做事的感觉。
青春运维少年不会梦到...:小时候老爸每次外出打工,我都会说注意安全,可是我真的懂老爸的工作吗,一个小学文凭的人出去打工能有什么安全的工作,可是老爸还是慈祥的回应我,仿佛每天能安全回家都归功于我的祈福。到了现在,我跨越3000多公里去了陌生的城市,老爸还是那个老爸,只不过现在多了问我的情况,会问我适应新城市吗,适应工作强度吗,到最后真的好奇,问我这个工作是干啥的;老爸没文化,不知道计算机网络有七层结构,也不知道云saas订阅,我只能说,就像汽车修理厂一样,我是那个修车的师傅。老爸可能觉得真的理解不了我的工作,之后也就没多问了。不过仍然还是给我传授他的经验,对于老爸来说,他也知道我做的是他难以理解的工作,知道小县城的那套江湖规矩难以闯荡大城市,但是他依旧会关心我。。。
实习的内耗时刻
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务