我試圖從一個表,其中的ID是重複刪除數據,但在一定值保持另一列刪除如果1列複製基於另一列
key . id . info . flag
1 . A . apple . y
2 . B . banana . n
3 . B . banana . y
4 . C . orange . n
我想刪除行2其中「id」是重複的並且將標誌值保持爲「y」。該表> 100K行
我試過DISTINCT和分組依據的各種組合沒有一個偉大的結果
我試圖從一個表,其中的ID是重複刪除數據,但在一定值保持另一列刪除如果1列複製基於另一列
key . id . info . flag
1 . A . apple . y
2 . B . banana . n
3 . B . banana . y
4 . C . orange . n
我想刪除行2其中「id」是重複的並且將標誌值保持爲「y」。該表> 100K行
我試過DISTINCT和分組依據的各種組合沒有一個偉大的結果
您可以通過使用一組,計數和具有過濾可能的ID 如果你想刪除其中y
delete from
my_table where id in (
select t.id from(
select id
from my_table
group by id
having count(*) > 1
) t
and flag ='y')
否則,如果你想保持y,則
delete from
my_table where id in (
select t.id from(
select id
from my_table
group by id
having count(*) > 1
) t
and flag <>'y')
有人可以張貼一些你已經嘗試過...值它會是很好的發佈你」已經得到了,爲什麼它似乎不工作的權利。如果兩個重複記錄的標誌都是'n'呢? –
首先嚐試編寫一個'SELECT'查詢,返回要刪除的行。 – axiac