You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Developer中如何在重复数据查询结果中包含全表字段?

解决SQL重复项查询并显示全字段的问题

你之前的SQL语法有误,子查询没和原表建立关联关系,所以无法正确返回结果。下面是两种最优的实现方式:

方法一:内连接(INNER JOIN)关联子查询

通过子查询找出重复的ID和Acc_Num,再和原表关联,就能拿到这些重复项对应的所有字段:

SELECT t1.*
FROM Table1 t1
INNER JOIN (
    -- 找出重复的ID和Acc_Num
    SELECT ID, Acc_Num
    FROM Table1
    WHERE PROCESS_DATE = '30-Apr-2025'
    GROUP BY ID, Acc_Num
    HAVING COUNT(1) > 1
) t2 
ON t1.ID = t2.ID AND t1.Acc_Num = t2.Acc_Num
WHERE t1.PROCESS_DATE = '30-Apr-2025' -- 限定日期,避免无关数据
ORDER BY t1.ID;

方法二:窗口函数(更直观)

用窗口函数直接统计每条记录的重复次数,再筛选出重复项,写法更简洁,还能看到重复次数:

SELECT *
FROM (
    SELECT *,
           -- 按ID和Acc_Num分组统计重复次数
           COUNT(1) OVER(PARTITION BY ID, Acc_Num) AS duplicate_count
    FROM Table1
    WHERE PROCESS_DATE = '30-Apr-2025'
) t
WHERE duplicate_count > 1 -- 只保留重复的记录
ORDER BY ID;

两种方法都能满足需求:窗口函数的写法更易读,适合新手理解;内连接的方式在数据量极大时,部分数据库中性能表现更优,可以根据实际场景选择。

内容的提问来源于stack exchange,提问作者Louise13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 02:40:57