题解 | #广告点击的高峰期#

广告点击的高峰期

https://www.nowcoder.com/practice/6756d65784f9413b8505c1d0c6754b3a

-- 使用rank窗口函数
SELECT 
	click_hour,
	click_cnt
FROM (
	SELECT 
	click_hour,
	click_cnt,
	RANK() OVER(ORDER BY click_cnt DESC) AS click_cnt_rank
    FROM (
    	SELECT 
        	HOUR(click_time) AS click_hour,
        	COUNT(click_time) AS click_cnt
    	FROM user_ad_click_time
    	GROUP BY  click_hour
    	ORDER BY click_cnt DESC
    ) AS t1
) AS t2
WHERE click_cnt_rank = 1;

这题如果直接使用limit,可能会忽略不同小时,但具有相同的最大点击次数。比如12时和13时点击次数都为10次时;

因此,先利用子查询计算每个小时的点击次数,然后利用窗户函数计算点击次数排序(无需分组,以点击次数排序就行)

这样可以得到点击次数的排序,然后选择排序为1的即可

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务