TableOne
PersonId PersonScore
1 10
1 20
2 99
2 40
3 45
我只需要提取PersonId出現的那些行不止一次例如以下是我想要實現選擇不止一次出現的行
PersonId PersonScore
1 10
1 20
2 99
2 40
我使用CTE
;WITH cte AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY i.PersonId ORDER BY i.PersonId) AS [Num]
FROM TableOne i
)
SELECT *
FROM cte
WHERE cte.Num > 1
問題是,它消除了多餘的行中的結果。它any任何PersonId的第一個實例。任何人都可以提出一個解決方案,請
可能重複[SQL Server計數分組](http://stackoverflow.com/questions/4700155/sql-server-count-on-a-grouped-by) –
@TomaszKowalczyk:他不想要計數任何東西,但會得到包含不唯一的PersonId的完整行。所以'GROUP BY'是錯誤的方法。 –