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

如何在ClickHouse中合并同一手机号的多行数据为单行?

ClickHouse 同手机号多记录字段合并查询

现有一张Customer表,数据来自多个不同数据源,导致同一手机号对应多条记录,每条记录仅包含部分非空字段(无法使用Update操作,因为无法获取全量字段)。表中数据如下:

PhoneEmailNameCity
998307900test@gmail.com
998307900Tashkent
998307900Stefany
998307900Stef

需要将同一手机号的所有非空字段合并为单行,最终得到如下结果:

PhoneEmailNameCity
998307900test@gmail.comStefanyTashkent

查询语句

SELECT
    Phone,
    any(Email) AS Email,
    max(Name) AS Name,
    any(City) AS City
FROM Customer
GROUP BY Phone

逻辑说明

  • any() 函数返回字段中的第一个非空值,适合Email、City这类唯一属性字段;
  • max(Name) 通过字符串字典序比较,保留示例中更完整的"Stefany"而非"Stef";如果需要按数据插入顺序取最后一个非空名称,可替换为 anyLast(Name);
  • 按Phone分组,实现同手机号下多记录的字段合并,新增字段只需复用对应聚合逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:22:31