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

使用rank函数实现SQL去重:同日期同answer_id仅customer_id不同记录保留1条

问题原因

你现有SQL的分区逻辑错误:PARTITION BY answer_id, customer_id的分组逻辑和你要求的去重规则完全不符,导致无法正确识别重复数据。

调整方案

按照你的去重规则,仅当除customer_id外所有字段完全一致时才视为重复数据,所以窗口函数的分区维度应该是所有排除customer_id的字段,每个分区只保留1条数据即可。你可以直接使用以下SQL:

select * from (
  select *,
    row_number() over (
      partition by created_at, answer_id, customer_name, product, email, score 
      order by customer_id asc
    ) as rn
  from 你的表名
) t
where rn = 1

如果你的业务要求重复组里保留指定规则的记录,比如创建时间最新的,把order by customer_id asc改成order by created_at desc即可。

效果验证

该SQL执行后会完全匹配你给出的预期输出:

  • created_at=20/09/2021、answer_id=1502的两条记录属于同一重复组,仅保留1条
  • created_at=22/08/2021、answer_id=3405的两条记录属于同一重复组,仅保留1条
  • created_at=12/09/2021、answer_id=1439的记录单独为一组,正常保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:09:00