--sql查找多字段重複項
SELECT Device_ID, Device_Type,Sign_Class,Sign_Name,Sign_State,Sign_No FROM alarm WHERE (Device_ID, Device_Type,Sign_Class,Sign_Name,Sign_State,Sign_No) IN
(
SELECT Device_ID, Device_Type,Sign_Class,Sign_Name,Sign_State,Sign_No FROM alarm GROUP BY
Device_ID, Device_Type,Sign_Class,Sign_Name,Sign_State,Sign_No HAVING count(*) > 1
);
--sql刪除多字段重複項,只保留最小rowid行。
DELETE FROM alarm WHERE (Device_ID, Device_Type,Sign_Class,Sign_Name,Sign_State,Sign_No) IN (
SELECT Device_ID, Device_Type,Sign_Class,Sign_Name,Sign_State,Sign_No FROM alarm GROUP BY
Device_ID, Device_Type,Sign_Class,Sign_Name,Sign_State,Sign_No HAVING count(*) > 1
)
and rowid NOT IN (
SELECT min(rowid) FROM alarm GROUP BY Device_ID,
Device_Type,Sign_Class,Sign_Name,Sign_State,Sign_No HAVING count(*) > 1
);