网站首页 文章专栏 mysql查询排名(相同则并列)

mysql查询排名(相同则并列)

编辑时间:2018-10-30 17:54:21 作者:苹果 浏览量:1834


    前言:使用原生sql语句,查出表table_name记录表中 九月份 用户记录的排名


SELECT
	t.*, (
		CASE
		WHEN @temp_view_count = t.num THEN
			@rank
		WHEN @temp_view_count := t.num THEN
			@rank := @rank + 1
		WHEN @temp_view_count = 0
		OR @temp_view_count IS NULL THEN
			@rank := @rank + 1
		END
	) AS rank
FROM
	(
		SELECT
			count(1) AS num,
			`uid`
		FROM
			table_name
		WHERE
			`addtime` BETWEEN 1535731200
		AND 1538323199
		GROUP BY
			uid
		ORDER BY
			num
	) AS t,
	(
		SELECT
			@rank := 0,
			@temp_view_count := NULL
	) r


temp_view_count为临时变量,rank为查询后新增展示字段,代表排名


    出自:何冰华个人网站

    地址:https://www.hebinghua.com/

    转载请注明出处


来说两句吧
最新评论