我需要删除一些"类似的" db中的行。
barcode name COL3 1234 item1 price10$ 1234 item1 price50$ 5678 item2 price10$
如何从db中删除#2(50dlls)?
我尝试使用MIN
,MAX
,DISTINCT
,WHERE
条款,但没有。
答案 0 :(得分:0)
最简单的方法是创建一个没有第一个重复项的新表。然后,您可以删除旧表并重命名新表。
create table new_table as
select barcode, name, min(col3) as col3
from old_table
group by barcode, name;
答案 1 :(得分:0)
您可以使用delete
:
delete t
from t join
(select barcode, name, min(col3) as mincol3
from t
group by barcode, name)
) tt
on t.barcode = tt.barcode and t.name = tt.name and t.col3 > tt.mincol3 ;
这假设mincol3
是唯一的,并且表格不是太大。最快的方法可能是truncate
和重新insert
:
create temporary table tt as
select barcode, name, min(col3) as col3
from t
group by barcode, name;
truncate table t;
insert into t(barcode, name, col3)
select barcode, name, col3
from tt;
答案 2 :(得分:0)
这是最终结果。 thx to all。
SELECT COL1,COL2,MIN(COL22)AS“最低”,COL3,COL4
FROM table1
COL BY GROUP1
现在我拥有所有产品。重要的“分组”