mysql 排序后, 如何加上序列号?

mysql 排序后, 如何加上序列号?,第1张

select a.*,

(select count(*) from tbl where col<=a.col) as rownum

from tbl a

mysql 没有oracle里面的rownum函数,用这个sql可以模拟下,但是如果数据量大的话,可能执行很慢。

表结构

ROW_NUMBER() OVER (PARTITION BY category ORDER BY id) AS idx

含义: 按 category 分组, 组内按 id 排序, 组内排序的序号(行号)作为列 idx

ROW_NUMBER() 在 mysql8 才开始支持, 对于msqyl5.7或对应版本的MariaDB,相同功能的实现可以参考如下 sql

要点:

可以看到,两个结果,在分组变化的地方,idx开始了重新编号,且结果与 ROW_NUMBER() 一致.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11454745.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存