LaL*_*aLa 6 sql t-sql sql-server-2008-r2
我目前有一张叫做People的桌子.在此表中,有数千行数据遵循以下布局:
gkey | Name | Date | Person_Id
1 | Fred | 12/05/2012 | ABC123456
2 | John | 12/05/2012 | DEF123456
3 | Dave | 12/05/2012 | GHI123456
4 | Fred | 12/05/2012 | JKL123456
5 | Leno | 12/05/2012 | ABC123456
Run Code Online (Sandbox Code Playgroud)
如果我执行以下操作:
SELECT [PERSON_ID], COUNT(*) TotalCount
FROM [Database].[dbo].[People]
GROUP BY [PERSON_ID]
HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC
Run Code Online (Sandbox Code Playgroud)
我得到了回报:
Person_Id | TotalCount
ABC123456 | 2
Run Code Online (Sandbox Code Playgroud)
现在我想只删除一行重复值,所以当我执行上面的查询时,我没有返回任何结果.这可能吗?
WITH a as
(
SELECT row_number() over (partition by [PERSON_ID] order by name) rn
FROM [Database].[dbo].[People]
)
DELETE FROM a
WHERE rn = 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1039 次 |
| 最近记录: |