Tsql 需要t-sql中的简单查询吗

Tsql 需要t-sql中的简单查询吗,tsql,Tsql,为了我们的目的,我简化了一个问题。你是如何达到这个结果的 ID OrigId ---------- 1 1 2 1 3 3 4 4 5 4 6 6 Result ID OrigId ---------- 1 1 2 1 4 4 5 4 要返回对应的OrigId在表中多次出现的所有行,可以使用 ;WITH CTE AS ( SELECT *, COUNT(*) OVER (PARTITION BY OrigId) AS C FROM Yo

为了我们的目的,我简化了一个问题。你是如何达到这个结果的

ID OrigId
----------
1   1
2   1
3   3
4   4
5   4
6   6

Result

ID OrigId
----------
1   1
2   1
4   4
5   4

要返回对应的
OrigId
在表中多次出现的所有行,可以使用

;WITH CTE AS
(
SELECT *,
       COUNT(*) OVER (PARTITION BY OrigId) AS C
FROM YourTable
)
SELECT ID,
       OrigId
FROM CTE
WHERE C >1

你可以使用HAVING语句

SELECT *
FROM dbo.Table
WHERE OrigID IN
(
SELECT OrigID
FROM dbo.Table
GROUP BY OrigID
HAVING COUNT(*) > 1
)

你想排除什么?你是在过滤ID还是OrigID?我是唯一一个不关注这一点的人吗?您是否试图过滤掉与原始内容没有改变的内容?在这种情况下,为什么4,4会被返回而不是6,6?@MikeChristensen-OP中的解释是不存在的,但似乎是
OrigId
多次出现的行应该被返回。哦,我现在看到了-是的,这就像一个有趣的“找到模式”难题!投票否决了末日的最终模糊性。这与7分钟前发布的@msmucker0527的答案有什么不同?@MartinSmith事实并非如此。在我看到他的帖子之前,我正在写这个问题。如果你喜欢,我可以删除。你的标签在subquery@msmucker0527哈哈哈,这是我这周看到的最好的评论。啊,糖的美。
select *
from selecttest
where origid in
(
    select origid
    from selecttest
    group by origid
    having COUNT(*) > 1
)