在 SQL 中按组键对行进行顺序编号
在 SQL 中,您可以使用 ROW_NUMBER() 函数对键组中的行进行顺序编号。此函数为分区中的每一行分配一个唯一的编号,该编号由 PARTITION BY 子句定义。
语法:
SELECT *, ROW_NUMBER() OVER (PARTITION BY key_column ORDER BY order_column) - 1 AS row_number FROM table_name
示例:
考虑桌子提供:
CODE | NAME |
---|---|
A | Apple |
A | Angel |
A | Arizona |
B | Bravo |
C | Charlie |
C | Cat |
D | Dog |
D | Data |
D | Down |
D | Doppler |
要在 CODE 组中按顺序对行进行编号,请使用以下查询:
SELECT CODE, ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY NAME) - 1 AS C_NO, NAME FROM MyTable
这将产生所需的结果:
CODE | C_NO | NAME |
---|---|---|
A | 0 | Apple |
A | 1 | Angel |
A | 2 | Arizona |
B | 0 | Bravo |
C | 1 | Charlie |
C | 0 | Cat |
D | 0 | Dog |
D | 1 | Data |
D | 2 | Down |
D | 3 | Doppler |
兼容性:
ROW_NUMBER() 函数是以下数据库支持:
这涵盖了最常用的 SQL 数据库。
以上是如何在 SQL 中按组对行进行顺序编号?的详细内容。更多信息请关注PHP中文网其他相关文章!