首页 > 数据库 > mysql教程 > 如何在 SQL 中按组对行进行顺序编号?

如何在 SQL 中按组对行进行顺序编号?

Susan Sarandon
发布: 2024-12-23 14:23:14
原创
727 人浏览过

How to Number Rows Sequentially by Group in SQL?

在 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 Server
  • Oracle
  • Postgres
  • Sybase
  • MySQL 8.0
  • MariaDB 10.2
  • SQLite 3.25

这涵盖了最常用的 SQL 数据库。

以上是如何在 SQL 中按组对行进行顺序编号?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板