首页 > 解决方案 > 在 Oracle Sql 中查找具有公分母的重复值

问题描述

我需要在具有共同分母的 Oracle Db 表上查找重复值。该表非常大,包含许多国家/地区的许多地址,通过检查一些城市,我看到同一个城市下有许多重复的区域(社区、地区),所以我需要列出同一个城市下的所有重复区域(相同的邮政编码等)。

我已经尝试了许多在 StackOverflow 上找到的查询,但还没有成功。

例如:

SELECT
    *
FROM
    TABLE1
WHERE
    SYNONYM = '1'
    AND STATE = 'ENGLAND'
    AND DISTRICT IN (
        SELECT DISTRICT
    FROM
        TABLE1
    GROUP BY
        DISTRICT
    HAVING
        COUNT(*) > 1);

基本上我需要找到记录a和记录b,其中国家/州/城市/邮政编码相同并输出两者。

简化:

我的表:A、B、C、D、E、F、G、H、I、J、K、L、M、N、O。

查找 C、D、E 和 F 相同的所有记录。显示发生这种情况的所有记录。

C、D 和 E 是数字,F 是描述 (CHAR)

谢谢!

标签: sqloracle

解决方案


如果您想要记录,请使用窗口函数:

select t.*
from (select t.*, count(*) over (partition by c, d, e, f) as cnt
      from t
     ) t
where cnt > 1;

如果您只想要c///值d,那么聚合就可以了ef


推荐阅读