如何使用 ROW_NUM() 来选择一个没有第二条记录的实例?

问题描述 投票:0回答:1

我正在尝试使用 ROW_NUM() 来获取只有 1 个关联评论值的 ID 实例,例如“SEND Final”,仅此而已。

这是表中记录的示例:

评论 身份证
发送最终结果 1
发送草稿 1
发送最终结果 2
发送草稿 2
发送最终结果 3

运行我的代码(在输出表下方)后,我希望返回此值,因为它是表中唯一只有一个注释实例(如“SEND Final”)的记录(没有关联的“SEND Draft”等记录/值)与身份证)。

评论 身份证
发送最终结果 3

这是我现在所拥有的,可以按照我想要的方式成功分区,但是我在选择符合我的标准的记录的逻辑上遇到了麻烦。

SELECT *, 
   ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID) Row_num
FROM Mytable

GROUP BY Comment, ID
ORDER BY ID ASC

我用一些测试数据和代码制作了一个dbfiddle。找到了这里

非常感谢任何帮助,或者如果我以错误的方式处理此问题,请告诉我!

sql sql-server row-number
1个回答
0
投票

当您想要

row_number
时,不确定为什么要使用
count

WITH cte AS (
    SELECT
        Comment,
        ID,
        COUNT(*) OVER (PARTITION BY ID) count_num
   FROM Mytable
)
SELECT *
FROM cte
WHERE count_num = 1;
© www.soinside.com 2019 - 2024. All rights reserved.