我有一个CTE表,它看起来像这样:
id prsn A B C
1 2 0 0 1
1 3 0 1 0
2 1 0 1 1
2 1 0 1 0
2 2 1 0 1
3 1 0 1 0
3 1 0 1 1
我想删除在列"中重复的记录;id";以及";prsn";确定要删除哪个记录的条件是它的列";C">0
因此,如果在";id";以及";prsn";我想用";C">0
预期输出:
id prsn A B C
1 2 0 0 1
1 3 0 1 0
2 1 0 1 1
2 2 1 0 1
3 1 0 1 1
我在jupyter 中使用CTE表
要测试记录是否唯一,可以使用SQL中的row_number((函数创建列D。这使您可以重置每个唯一记录的行号,这样您就可以删除行号未重置且>1.所以这将是:
with CTE as
(select row_number() over (partition by id, prsn order by id, prsn) as D from yourdata)
delete from CTE where D > 1 and C = 0