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

基于列筛选不重复行组合:移除镜像作者对冗余的SQL查询

解决作者镜像数据冗余的SQL方案

嘿,这个镜像数据去重的需求在合作作者统计场景里特别常见,我来给你捋清楚怎么搞定!

核心思路很简单:我们通过字符串字典序比较,只保留author1和author2的其中一种固定组合(比如始终让字典序更小的名字排在前面),删掉反过来的冗余记录。

第一步:先确认要保留的记录(安全验证)

先运行这个查询,看看哪些记录会被保留,确保逻辑符合你的预期:

SELECT *
FROM your_table_name -- 记得替换成你的实际表名
WHERE author1 < author2

比如你的示例数据里,Anna Spagnolli的字典序比Luciano Gamberini小,所以第一条记录会被保留,第二条镜像记录会被排除,完全符合你的需求。

第二步:删除冗余的镜像记录

确认没问题后,就可以删除那些反向的冗余记录了:

DELETE FROM your_table_name
WHERE author1 > author2

这条语句会精准删掉所有author1字典序大于author2的镜像记录,只留下唯一的组合。

额外补充:特殊场景处理

  • 如果你的数据库字符串比较区分大小写(比如Anna和anna被当成不同值),可以统一转成小写后再比较,避免误判:
    -- 查询保留记录
    SELECT *
    FROM your_table_name
    WHERE LOWER(author1) < LOWER(author2)
    
    -- 删除冗余记录
    DELETE FROM your_table_name
    WHERE LOWER(author1) > LOWER(author2)
    
  • 如果存在author1和author2相同的记录(比如同一作者自引),可以在条件里加AND author1 != author2来排除这种情况,避免误删。

备选方案:创建新的去重表

如果你不想修改原表,而是生成一个全新的无冗余表,可以用这条语句:

CREATE TABLE deduplicated_authors AS
SELECT author1, author2, `No of Publications`
FROM your_table_name
WHERE author1 < author2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:46:02