mysql 查询每个分组的前几名

时间:2019-10-26 11:30:33   收藏:0   阅读:133

 

 

按分组排序,并查出每个分组的前3名

 

 

SELECT
    * 
FROM
    (
SELECT
    ZONEID,
    uid,
    NAME,
    fight,
IF
    ( @zone = zoneid, @rank := @rank + 1, @rank := 1 ) AS rank,
    ( @zone := zoneid ) AS zone 
FROM
    `user` u,
    ( SELECT @rank := 0 ) t,
    ( SELECT @zone := 1 ) z 
ORDER BY
    zoneid DESC,
    fight DESC 
    ) a 
WHERE
    rank <= 3 
ORDER BY
    zoneid DESC,
    rank DESC

技术分享图片

 

原文:https://www.cnblogs.com/jyiqing/p/11742111.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!