题解 | #每个月Top3的周杰伦歌曲#

每个月Top3的周杰伦歌曲

https://www.nowcoder.com/practice/4ab6d198ea8447fe9b6a1cad1f671503

SELECT 
	MONTH month, 
	ranking,
	song_name,
	pv AS play_pv 
FROM
	(
	SELECT 
		MONTH as month,
		YEAR,
		ROW_NUMBER() over (
			PARTITION BY
			MONTH,
		YEAR 
		ORDER BY
			pv DESC,
			song_id 
		) AS ranking,
		song_name,
		pv 
	FROM
		(
		SELECT
			song_id,
			MONTH,
			YEAR,
			song_name,
			count(*) pv 
		FROM
			(
			SELECT
				log.song_id,
				info.age,
				log.fdate,
				song.singer_name,
				song.song_name,
				MONTH ( log.fdate ) AS MONTH,
				YEAR ( log.fdate ) AS YEAR 
			FROM
				play_log log
				INNER JOIN user_info info ON info.user_id = log.user_id
				INNER JOIN song_info song ON song.song_id = log.song_id 
			WHERE
				info.age BETWEEN 18 
				AND 25 
				AND song.singer_name = '周杰伦' 
			) a 
		WHERE
			YEAR = 2022 
		GROUP BY
			song_id,
			MONTH,
			YEAR,
			song_name 
		) c 
	) z 
WHERE
	ranking <=3

全部评论

相关推荐

07-07 13:55
门头沟学院 Java
现在连双休都是需要强调的“特例”
程序员小白条:双休已经变躺平了,那我885,995,都算躺平,国内已经变这样了,以后贫富差距越来越大
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 12:10
点赞 评论 收藏
分享
07-07 17:06
已编辑
深圳技术大学 golang
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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