使用 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中文网其他相关文章!