Sqlite 选择一对值在子选择中的位置

Sqlite 选择一对值在子选择中的位置,sqlite,group-by,Sqlite,Group By,我有一个主键包含三个字段的表: IdPro, IdPri, IsComp 实际上,我有一些不正常的情况,例如: IDPro IDPri IsComp 1 1 null 1 1 0 我想删除IsComp=null中的行,但仅当存在对应的行时 我需要知道是否存在以下情况: Delete from mytable where IsComp is null AND Tuple(IDpro, IDPri) in

我有一个主键包含三个字段的表:

IdPro, IdPri, IsComp
实际上,我有一些不正常的情况,例如:

   IDPro IDPri  IsComp
    1      1     null
    1      1      0
我想删除
IsComp=null
中的行,但仅当存在对应的行时

我需要知道是否存在以下情况:

Delete from mytable where IsComp is null 
       AND Tuple(IDpro, IDPri) in 
           (SELECT Tuple(IDPro, IDPri) 
            FROM mytable group by IDPro, IDPri 
            HAVING Count(*) > 1 
           )

谢谢。

您可以通过连接
IDpro
IDPri
为表创建一个假唯一键:

DELETE FROM mytable 
WHERE IsComp IS null AND 
      IDpro || ';' || IDPri IN (
         SELECT IDpro || ';' || IDPri 
         FROM mytable
         GROUP BY IDpro , IDPri 
         HAVING COUNT(*) > 1
      )

是的,因为字段是数字,所以没有机会有“;”这个词进入选定字段,谢谢!