我正在尝试使用 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。找到了这里
非常感谢任何帮助,或者如果我以错误的方式处理此问题,请告诉我!
当您想要
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;