我试图仅保留ID具有单个销售日期的行,例如。SQL - 根据ID移除具有多个唯一日期的行
ID SALES_DTE
101 10-JAN-12
101 10-JAN-12
101 10-JAN-12
102 10-JAN-12
102 13-JAN-12
103 13-JAN-12
在上面,我想保留ID 101和103,因为他们只有一个销售日期。但我不想要102,因为它有两个销售日期。谁能帮忙?
我试图仅保留ID具有单个销售日期的行,例如。SQL - 根据ID移除具有多个唯一日期的行
ID SALES_DTE
101 10-JAN-12
101 10-JAN-12
101 10-JAN-12
102 10-JAN-12
102 13-JAN-12
103 13-JAN-12
在上面,我想保留ID 101和103,因为他们只有一个销售日期。但我不想要102,因为它有两个销售日期。谁能帮忙?
delete from your_table
where id not in
(
select id
from your_table
group by id
having count(distinct sales_date) = 1
)
这似乎对我来说很有用,谢谢! – user1784264
注意:这也会删除碰巧有'sales_date IS NULL'的元组,这可能是也可能不是OP的意图。 – wildplasser
这可以通过'having'子句改变:'有count(distinct sales_date)<= 1' –
'SELECT * FROM MYTABLE TB其中不存在(选择从那里nx.id = tb.id和nx.sales_date <> tb.sales_date MYTABLE NX *);'NB如果要**物理删除他们**:用“删除”**替换“select *”**并删除NOT ** – wildplasser