Mysql行号问题

SELECT
    DeptId,
    Money,
    @r :=IF(DeptId = @d, IF ( Money = @s, @r, @r + 1 ), @r + 1) AS rnk,
    @d := DeptId,
    @s := Money 
FROM
    TestGroup,
    (SELECT @s := NULL, @d := NULL, @r := 0 ) init 
ORDER BY
    DeptId DESC,
    Money DESC;
    
#注:为行编号,同DeptId同Money为同一个编号,编号递增
#备注: @s用于存储上一次的Money,@d用于存储上一次的DeptId,@r为编号
# @r :=IF(DeptId = @d, IF ( Money = @s, @r, @r + 1 ), @r + 1) AS rnk, 这句话生成行号的同时,为@r赋值

#表数据
-- id       DeptId  Money
-- 1            1               20
-- 2            1               30
-- 3            2               10
-- 4            2               50
-- 5            3               90
-- 6            3               13
-- 7            3               13
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容