【问题标题】:How to find duplicates in one field which are not duplicates in another如何在一个字段中查找在另一个字段中不重复的重复项
【发布时间】:2019-07-18 23:58:28
【问题描述】:

我正在尝试从表中提取帐号和邮政编码,其中邮政编码重复但帐号不重复,(仅在存在邮政编码的情况下)

例如一个名为mailing 的表,其中包含以下字段:-

acc....custname.............postcode
B102...BILLYS SHOES.........LE54 2YZ
B104...BILLYS SHOES.........LE54 2YZ
D200...FANSY................RM5 6LW
D200...FANSY(2ND ACCOUNT)...RM5 6LW
T502...WELLIES R US.........
T502...WELLIES R US.........
    ...THE SHOE SHOP........DN54 05Y
X102...THE SHOE SHOP........DN54 05Y

所以,我尝试按计数 > 1 的邮政编码进行分组,效果很好,并显示

acc....custname.............postcode
B102...BILLYS SHOES.........LE54 2YZ
B104...BILLYS SHOES.........LE54 2YZ
D200...FANSY................RM5 6LW
D200...FANSY(2ND ACCOUNT)...RM5 6LW
    ...THE SHOE SHOP........DN54 05Y
X102...THE SHOE SHOP........DN54 05Y

但我需要能够只显示帐号也不重复的地方,即如下

acc....custname.............postcode
B102...BILLYS SHOES.........LE54 2YZ
B104...BILLYS SHOES.........LE54 2YZ
    ...THE SHOE SHOP........DN54 05Y
X102...THE SHOE SHOP........DN54 05Y

代码:

SELECT *
FROM mailing
WHERE postcode IS NOT NULL AND postcode <> '' AND
postcode IN (SELECT postcode FROM mailing group by postcode HAVING COUNT(postcode) > 1)
ORDER BY postcode;

已尝试在帐号上使用另一个计数器,但根本没有取回任何数据

【问题讨论】:

    标签: mysql sql having


    【解决方案1】:

    您可以将NOT EXISTSEXISTS 用于这两个条件:

    SELECT m.* FROM mailing m
    WHERE
      NOT EXISTS (
        SELECT 1 FROM mailing
        WHERE acc = m.acc AND custname <> m.custname
      )
      AND
      EXISTS (
        SELECT 1 FROM mailing
        WHERE postcode = m.postcode and acc <> m.acc
      )
    

    如果您只想要邮政编码重复的记录,但前提是它们用于不同的帐号,那么只使用 EXISTS:

    SELECT m.* FROM mailing m
    WHERE
      EXISTS (
        SELECT 1 FROM mailing
        WHERE postcode = m.postcode and acc <> m.acc
      )
    

    【讨论】:

    • 感谢您的想法,我不确定这是如何工作的,因为它似乎带回了不同的数据。可以将其修改为不比较 custname 字段。所以基本上我只是希望它带回邮政编码重复的记录,但前提是它们用于不同的帐号,谢谢
    • @CR15BRN 如果此答案解决了您的问题,请考虑通过勾选左侧的复选标记来接受它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2015-03-07
    • 2021-12-28
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多