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

行重复时合并主键字段的SQL Select查询实现方法

解决方案

核心逻辑是按照 First、Surname、DOB 三个字段分组,对同组内的ID字段做字符串拼接聚合,不同数据库使用的聚合函数略有区别:

  • MySQL :使用 GROUP_CONCAT 函数
    SELECT 
      GROUP_CONCAT(ID ORDER BY ID SEPARATOR ' / ') AS ID,
      First,
      Surname,
      DOB
    FROM 你的表名
    GROUP BY First, Surname, DOB;
    
    注意:如果同组ID数量较多,MySQL默认的GROUP_CONCAT长度限制可能会截断结果,可以提前执行SET SESSION group_concat_max_len = 102400;调整当前会话的长度限制。
  • PostgreSQL、SQL Server 2017及以上版本:使用 STRING_AGG 函数
    SELECT 
      STRING_AGG(ID, ' / ' ORDER BY ID) AS ID,
      First,
      Surname,
      DOB
    FROM 你的表名
    GROUP BY First, Surname, DOB;
    
  • Oracle 11gR2及以上版本:使用 LISTAGG 函数
    SELECT 
      LISTAGG(ID, ' / ') WITHIN GROUP (ORDER BY ID) AS ID,
      First,
      Surname,
      DOB
    FROM 你的表名
    GROUP BY First, Surname, DOB;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 08:45:03