SQL 中键分组的顺序行编号
SQL 提供了一个强大的功能来顺序枚举特定键组中的行。当您需要根据不同的类别或属性组织数据时,此功能特别有用。让我们探讨一下此功能如何在各种 SQL 方言中工作。
不同 SQL 方言中的实现
以下 SQL 方言提供了按键组顺序进行行编号的解决方案:
示例数据和所需的投影
考虑以下带有(CODE,NAME)元组的示例表:
CODE NAME ---- ---- A Apple A Angel A Arizona B Bravo C Charlie C Cat D Dog D Doppler D Data D Down
所需的投影使用 CODE 作为分组属性的投影看起来如下像:
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
SQL 查询来完成顺序行编号
要实现按键组的顺序行编号,您可以利用以下 SQL 查询:
SELECT CODE, ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY NAME) - 1 As C_NO, NAME FROM MyTable
此查询将根据 CODE 列对表进行分区,并按 NAME 对每个分区内的记录进行排序列,然后从结果行号中减去 1,以获得每个键组所需的从 0 开始的顺序编号。
以上是如何在 SQL 中通过键分组实现顺序行编号?的详细内容。更多信息请关注PHP中文网其他相关文章!