简体   繁体   English

如何删除此复杂查询选择的重复项?

[英]How do I delete the duplicates this complex query selects?

I would like to delete the entire row for ALL of the duplicates this query finds. 我想删除此查询找到的所有重复项的整个行。 I do not wish to leave a single record. 我不想留下任何记录。 How do I add the delete row syntax to this complicated query? 如何在此复杂的查询中添加删除行语法?

SELECT u.id, u.School, u.Mascot, u.City, u.State
FROM TABLE u
INNER JOIN
(
    SELECT Mascot, City, State, COUNT(*)
    FROM tablename
    GROUP BY Mascot, City, State
    HAVING COUNT(*) > 1
) temp
    ON temp.Mascot = u.Mascot AND
       temp.City = u.City AND
       temp.State = u.State
ORDER BY
    Mascot, City, State;

Try grouping and then retaining only those groups having a count of 1: 尝试分组,然后仅保留计数为1的那些组:

SELECT
    u.id, u.School, u.Mascot, u.City, u.State
FROM TABLE u
INNER JOIN
(
    SELECT Mascot, City, State, COUNT(*)
    FROM tablename
    GROUP BY Mascot, City, State
    HAVING COUNT(*) > 1
) temp
    ON temp.Mascot = u.Mascot AND
       temp.City   = u.City   AND
       temp.State  = u.State
GROUP BY
    u.id, u.School, u.Mascot, u.City, u.State
HAVING
    COUNT(*) = 1
ORDER BY
    Mascot, City, State;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM