假设我有一个像这样的列的表
1
1
1
2
3
4
5
5
我需要做一些让它看起来像这样的事情:
2
3
4
我不能使用DISTINCT,因为它将保留“1”和“5”中的至少一个。所以,我只想删除所有内容,如果它在表中的任何位置具有相同的值。
答案 0 :(得分:2)
delete from your_table
where col in
(
select col from your_table group by col having count(*) > 1
)
答案 1 :(得分:1)
select MyNum, count(MyNum)
from MyTable
group by MyNum
having count(MyNum) = 1
答案 2 :(得分:0)
如果您使用SQL SERVER
,则可以通过CTE
和COUNT Over()
窗口聚合函数轻松实现此功能
;with cte as
(
Select count(1) over(partition by your_col) cnt,*
)
Delete from CTE where cnt > 1