我需要删除每个表 ID 的所有重复项(除了一个)。就像下面这样。我需要删除 valueid 上 01,02,03 的所有重复项...
\n\n原来的:
\n\nid | valueid | data\n____________________________\n01 | 1001 | datadata1 \n01 | 1002 | datadata2\n01 | 1001 | datadata1\n02 | 1323 | datamoredata123\n02 | 1323 | datamoredata123\n03 | 22123 | evenmoredata\n03 | 24444 | andalsomore\nRun Code Online (Sandbox Code Playgroud)\n\n应该像这样结束:
\n\nid | valueid | data\n____________________________\n01 | 1001 | datadata1 \n01 | 1002 | datadata2\n02 | 1323 | datamoredata123\n03 | 22123 | evenmoredata\n03 | 24444 | andalsomore\nRun Code Online (Sandbox Code Playgroud)\n\n试图用这样的方法来做到这一点,但我不\xc2\xb4t 不明白如何将删除的 id 分组
\n\nWITH CTE AS(\n SELECT valueid,\n RN = ROW_NUMBER()OVER(PARTITION BY valueid ORDER BY valueid)\n FROM tblvalues\n)\nDELETE FROM CTE WHERE RN > 1\nRun Code Online (Sandbox Code Playgroud)\n\n有什么建议么?
\n\n提前致谢
\n您需要将id列添加到PARTITION:
WITH CTE AS(
SELECT valueid,
RN = ROW_NUMBER()OVER( PARTITION BY id, valueid ORDER BY data)
FROM tblvalues
)
DELETE FROM CTE WHERE RN > 1
Run Code Online (Sandbox Code Playgroud)
这样您就可以valueid分别删除每个 的重复值id。列data确定删除哪些重复项。
| 归档时间: |
|
| 查看次数: |
573 次 |
| 最近记录: |