按分组排序,并查出每个分组的前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

mysql 查询每个分组的前几名

 

相关文章:

  • 2021-09-08
  • 2021-10-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-14
猜你喜欢
  • 2022-01-01
  • 2021-11-01
  • 2022-12-23
  • 2022-12-23
  • 2022-01-01
相关资源
相似解决方案