如何在Alteryx或SQL中合并同一ID多行数据生成最完整条目
合并ID多行数据为完整条目的实现方法
一、SQL实现
利用聚合函数忽略NULL的特性,用MAX()(或MIN(),只要对应列同一ID下非空值唯一即可)聚合各列,按ID分组就能得到目标结果。
假设你的表名为your_table,执行以下SQL语句:
SELECT 1 AS row, ID, MAX(ColA) AS ColA, MAX(ColB) AS ColB, MAX(ColC) AS ColC FROM your_table GROUP BY ID;
注:MAX()会自动跳过NULL值,提取列内的非空有效值;如果同一列同一ID下有多个不同非空值,可结合窗口函数(比如ROW_NUMBER())筛选指定值,你的示例场景用MAX()完全适配。
二、Alteryx实现
用Alteryx自带的Summarize工具就能快速完成:
- 把
Summarize工具拖到画布,连接你的数据源; - 配置面板里,把
ID设为Group By; - 对
ColA、ColB、ColC分别选择First Non-Null(或Max)作为聚合方式; - 要是需要结果里的
row列,直接新增一个常量字段,值设为1就行; - 运行工作流,就能得到每个ID的完整合并条目。
补充:如果同一列有多个不同非空值,First Non-Null取第一个出现的非空值,Max取字符串排序后的最大值,按需选择即可。
内容的提问来源于stack exchange,提问作者Deb
相关产品推荐
相关产品推荐

