首页 >数据库 >mysql教程 >如何在 SQL 中显示唯一值的行号?

如何在 SQL 中显示唯一值的行号?

Patricia Arquette
Patricia Arquette原创
2024-12-25 18:17:11120浏览

How to Display Row Numbers for Unique Values in SQL?

使用 SQL 显示唯一值的行号

SQL 中的 DISTINCT 关键字用于仅检索唯一值来自指定列。在这种特殊情况下,您的目标是使用 ROW_NUMBER() 函数显示列中唯一值的行号。

但是,您提供的查询:

SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum
FROM table
WHERE fid = 64

没有返回预期的结果,因为它使用 DISTINCT 有效地消除了重复项。因此,它的行为类似于以下查询:

SELECT DISTINCT id FROM table WHERE fid = 64

要获得所需的输出,您可以使用 DENSE_RANK() 函数。 DENSE_RANK() 按指定的顺序为每个不同的值分配唯一的行号,即使存在重复的值也是如此。

这是修改后的查询:

SELECT DISTINCT id, DENSE_RANK() OVER (ORDER BY id) AS RowNum
FROM table
WHERE fid = 64

This查询将为您提供与满足条件 WHERE fid = 的行的指定列中的唯一值相对应的行号64.

以上是如何在 SQL 中显示唯一值的行号?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn