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

如何基于存在重复值的两列从关联表中提取唯一行

需求实现方案

可行性确认

该需求完全可以实现,核心逻辑为基于Last、Street两列做分组去重,每组内保留任意一条记录即可。

常见场景实现方法

SQL处理(关联表后直接在数据库内处理)

  • 适配所有支持窗口函数的数据库(MySQL 8.0+、PostgreSQL、SQL Server等)
    使用ROW_NUMBER()窗口函数按Last、Street分区,分区内无需指定排序规则,取每组第一条即可:

    SELECT 第三列名, Last, Street
    FROM (
        SELECT 
            *,
            ROW_NUMBER() OVER (PARTITION BY Last, Street ORDER BY (SELECT 1)) AS rn
        FROM 你的关联结果临时表/子查询
    ) t
    WHERE rn = 1;
    

    其中ORDER BY (SELECT 1)表示无需特殊排序,数据库会随机取分组内的一条记录返回,符合你保留任意一条的要求。

  • 低版本无窗口函数的数据库
    配合聚合函数+分组实现,第三列可随意用MAX()/MIN()取值:

    SELECT MAX(第三列名) AS 第三列名, Last, Street
    FROM 你的关联结果临时表/子查询
    GROUP BY Last, Street;
    

离线数据处理

  • Excel场景:选中全量数据,点击「数据」选项卡下的「删除重复值」,弹窗中仅勾选Last、Street两个重复判断列,确认后即可自动去重,保留每组第一条记录。
  • Python Pandas场景:调用drop_duplicates方法指定去重列即可:
    # df为关联后生成的DataFrame对象
    df = df.drop_duplicates(subset=['Last', 'Street'], keep='first')
    # keep参数可替换为'last',按需选择保留的位置即可
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:27:03