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

如何查找数据中的重复行并正确输出行号、名称等对应信息

重复行查找多场景实现方案(支持输出行号、名称、编号字段)

1. SQL场景(关系型数据库通用)

核心逻辑是先通过窗口函数定位重复分组,再关联拉取全量需要的字段,语句可直接适配MySQL、PostgreSQL、SQL Server等主流数据库:

-- 输出所有重复行的行号、名称、编号及对应分组的重复行数
SELECT 
    行号字段名,
    名称字段名,
    编号字段名,
    repeat_count AS 该分组重复行数
FROM (
    SELECT 
        *,
        ROW_NUMBER() OVER (PARTITION BY 名称字段名, 编号字段名 ORDER BY 行号字段名) AS rn,
        COUNT(*) OVER (PARTITION BY 名称字段名, 编号字段名) AS repeat_count
    FROM 你的表名
) t
WHERE repeat_count >= 2 -- 仅返回存在重复的分组数据
-- 若只需返回除第一条外的冗余重复行,可额外添加 AND rn > 1 条件

使用时替换语句内的行号字段名、名称字段名、编号字段名、你的表名为实际业务的字段和表名即可。

2. Python Pandas场景

适合处理本地文件类的表格数据,核心是通过duplicated方法标记重复行后筛选指定字段输出:

import pandas as pd

# 读取本地数据,csv格式可替换为pd.read_csv("你的文件路径.csv")
df = pd.read_excel("你的文件路径.xlsx")

# 按名称、编号两个字段判断重复,keep=False表示标记该分组下所有重复行
df["是否重复"] = df.duplicated(subset=["名称", "编号"], keep=False)

# 筛选重复行并输出行号、名称、编号字段,这里行号默认取原始数据的行索引
result = df[df["是否重复"] == True].reset_index().rename(columns={"index": "行号"})[["行号", "名称", "编号"]]

# 打印结果,也可通过下行代码导出为本地文件
# result.to_excel("重复行查询结果.xlsx", index=False)
print(result)

3. Excel场景

无需代码,用辅助列即可实现需求:

  • 第一步:新增重复标记辅助列,在第一行数据的空白单元格输入公式 =COUNTIFS(B:B,B2,C:C,C2),其中B列为名称列、C列为编号列,下拉填充所有行
  • 第二步:筛选辅助列数值大于1的行,即为所有存在重复的分组行,直接选中行号、名称、编号列复制即可得到需要的结果
  • 若只需标记除首行外的冗余重复行,可将公式替换为 =COUNTIFS(B$2:B2,B2,C$2:C2,C2)>1,返回TRUE的即为冗余重复行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:09:01