题解 | #某乎问答最大连续回答问题天数大于等于3天的用户及其对应等级#

某乎问答最大连续回答问题天数大于等于3天的用户及其对应等级

http://www.nowcoder.com/practice/e080f8a685bc4af3b47749ca3310f1fd

题目有个要求是最大连续回答问题天数大于等于3天,那按题意应该取一次max,留max_dyas_cnt作为days_cnt。

事实上其实只选出days_cnt>=3也没关系,当然是属于最大连续回答问题天数大于等于3的用户,但是如果同一用户有两个这种连续记录那么就会重复(本题没有出现这种情况),那么days_cnt选取就出现矛盾,所以理解为max_days_cnt作为days_cnt以及选出该用户即可。

select author_id,author_level,max_days_cnt as days_cnt
from (
		select author_id,max(days_cnt) as max_days_cnt
		from (
					select author_id,
								 count(dt2) as days_cnt
					from (
								select author_id,
											 answer_date as dt1,
											 date_sub(answer_date,interval ranking day) as dt2
								from (
									select distinct author_id,
												 answer_date,
												 dense_rank() over(partition by author_id order by answer_date asc) as ranking
									from answer_tb
										 ) as t
							 ) as t1
					group by author_id,dt2
					) as t2
		group by author_id
		having max_days_cnt>=3
) as a
left join author_tb using(author_id)
order by author_id 
			 
全部评论

相关推荐

点赞 评论 收藏
分享
05-29 20:34
门头沟学院 C++
KarlAllen:得做好直接春招的准备。学历差的话,一是面试要求会比学历好的严格不少,二是就算面试通过了也会被排序。总之暑期和秋招对于学历差的就是及其不友好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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