我正在使用SQL Server。这是我的样本数据集:
IDNO| Consigment | SO_Number | Acc Number | OfficeNumber|PL9 |Remarks
--- | -----------| ----------| -----------| ------------|-------|-------
1 | AA12345MY | 1024450191| 8800400431 |B213 |W449401|Stay
2 | AA12345MY | 1024450192| 8800400431 |B213 |W449401|Remove
3 | BA12345MY | 1024460121| 8800400726 |K678 |W229790|Stay
4 | BA12345MY | 1024460124| 8800400726 |K678 |W229790|Remove
我想在第2行和第4行发表评论,因为它是重复的。
重复标准必须与这4列匹配:
我正在移除最年轻的SO号码(哪一个是最新的)
我还没有找到如何开始的线索,因为我从未找到完美的参考
此致
Fadlisham Fadzil
答案 0 :(得分:2)
此处创建CTE的一种方法是标记重复记录,然后从该CTE中删除:
WITH cte AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY Consigment, [Acc Number], OfficeNumber, PL9
ORDER BY SO_Number) rn
FROM yourTable
)
DELETE FROM cte
WHERE rn > 1;