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

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

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

select
	t1.job
	,date_format(t1.date,'%Y-%m') as first_year_mon
	,sum(t1.cnt) as first_year_cnt
	,date_format(t2.date,'%Y-%m') as second_year_mon
	,sum(t2.cnt) as second_year_cnt
from 
	(select 
		job
		,date
		,sum(num) as cnt 
	from resume_info 
	group by job,date_format(date,'%Y-%m')) t1 #first_year各月汇总
join
	(select 
		job
		,date
		,sum(num) as cnt 
	from resume_info 
	group by job,date_format(date,'%Y-%m')) t2 #second_year各月汇总
on t1.job = t2.job 
and date_format(t1.date,'%Y-%m') = date_format(date_sub(t2.date,interval 1 year),'%Y-%m')
where year(t1.date) = '2025'
group by t1.job,date_format(t1.date,'%Y-%m')
order by first_year_mon desc,t1.job desc

记录一下解题过程中踩过的坑;

  1. 时间函数参数date要为标准形式; 连接条件最开始写的: date_format(t1.date,'%Y-%m') = date_sub(date_format(t2.date,'%Y-%m'),interval 1 year) 试过之后发现不会报错但会返回空值
  2. 汇总求和时顺序错误; 最初我是按照年份差1、月份相同做连接之后再求和。但这样同一个月份之间的多条数据会形成笛卡尔积,导致计数重复。
全部评论

相关推荐

05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
点赞 评论 收藏
分享
吴offer选手:学到了,下次面试也放张纸在电脑上,不然老是忘记要说哪几个点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务