我有一张表,我想避免基于一列的重复值。
如果所有站点都具有相同的版本,我需要从 CustomerName 中删除重复项。
在表格中我想要第 2、3、4、5 行(不是 6,因为 5 和 6 有相同的版本)然后是 7、9、10、11、12(不是 13 和 14,因为 12、13、14 有版本)
DELETE t1
FROM your_table t1
JOIN (
SELECT CustomerName, Version
FROM your_table
GROUP BY CustomerName
HAVING COUNT(DISTINCT Version) = 1
) t2 ON t1.CustomerName = t2.CustomerName
WHERE t1.Version <> t2.Version;
CustomerName
val that have only one distinct VersionCustomerName
Version
val不同于为CustomerName
更新 甲骨文语法:
DELETE FROM your_table
WHERE CustomerName IN (
SELECT CustomerName
FROM your_table
GROUP BY CustomerName
HAVING COUNT(DISTINCT Version) = 1
)
AND Version NOT IN (
SELECT Version
FROM your_table
GROUP BY CustomerName, Version
HAVING COUNT(*) > 1
);