我有4列A,B,C,D。我需要从仅A列是主键的地方删除重复项。重复项可以是B,C,D的1个或2个或3个值。
例如:
SELECT DISTINCT p.txt_reqId, ? as SearchValue, ? as Asset, ? as IPV4 address
FROM ... WHERE d.value like ?
预期结果
A B C D
--------
1 1 1 1
1 1 2 1
1 1 2 1 (COLUMN IS DUPLICATE BECAUSE VALUE IN C IS SAME)
1 1 2 2
1 1 2 2 (COLUMN IS DUPLICATE BECAUSE VALUES IN C AND DIS SAME)
答案 0 :(得分:3)
根据描述,我可以说简单的区别应该有所帮助:
SELECT DISTINCT A, B, C, D FROM Table
答案 1 :(得分:0)
如果A
确实是主键,那么您需要这样的东西:
select min(a) as a, b, c, d
from t
group by b, c, d;
注意:在示例数据中,A
不是主键。
如果要删除重复项,则:
delete from t
where t.a > (select min(t2.a)
from t t2
where t2.b = t.b and t2.c = t.c and t2.d = t.d
);