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

SQL查询重复邮箱时如何将关联用户名拼接为逗号分隔的同组记录

要实现按邮箱分组拼接同一邮箱对应的所有用户名的需求,不同数据库的语法略有差异,以下是主流数据库的实现方案:

MySQL 实现

MySQL 使用GROUP_CONCAT函数完成分组字符串拼接:

SELECT 
    GROUP_CONCAT(NAME ORDER BY ID SEPARATOR ', ') AS NAME,
    EMAIL
FROM users
GROUP BY EMAIL
HAVING COUNT(EMAIL) > 1;

其中ORDER BY ID可指定用户名的拼接顺序,不需要可以删除;如果不需要过滤仅出现1次的邮箱,直接去掉HAVING子句即可。

PostgreSQL / SQL Server 实现

这两类数据库使用STRING_AGG函数实现分组拼接:

SELECT 
    STRING_AGG(NAME, ', ' ORDER BY ID) AS NAME,
    EMAIL
FROM users
GROUP BY EMAIL
HAVING COUNT(EMAIL) > 1;

Oracle 实现

Oracle 使用LISTAGG函数完成分组拼接:

SELECT 
    LISTAGG(NAME, ', ') WITHIN GROUP (ORDER BY ID) AS NAME,
    EMAIL
FROM users
GROUP BY EMAIL
HAVING COUNT(EMAIL) > 1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:09:03