网站首页 文章专栏 mysql查询排名(相同则并列)
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为查询后新增展示字段,代表排名
转载请注明出处