select * from table1 where destination in ('chi','usa','ind')
理想情况下,我的结果集应为3行。每个目的地一行。
但在我的结果中有重复。
chi
usa
ind
usa
我想找到哪个目的地是重复的。 我有数百个目的地,我想删除重复的记录。 我不是在寻找明显的。我正在寻找重复的那些。
答案 0 :(得分:7)
使用group by而不是使用distinct
select destination from table1
where destination in ('chi','usa','ind')
group by destination
having count(*)>1
如果你想删除这些并保留一个,它会有点乱。这可能是最短的方式,但它有点像黑客。
delete from destination where id not in (
select max(id) from table1
where destination in ('chi','usa','ind')
group by destination
)
答案 1 :(得分:1)
这将为您提供重复数量,按照dupes desc的数量排序:
SELECT CountryAbbr,
COUNT(*) AS DuplicateCount
FROM YourTable
GROUP BY CountryAbbr
HAVING COUNT(*) > 1
Order By 2 DESC
答案 2 :(得分:0)
最后添加组...应该给你两列,on是国家,另一列是它在列表中的次数。
所以......
select * from table1 where destination in ('chi','usa','ind') group by destination
希望这有帮助