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

SQL同ID多行分散列数据合并为单行的简化实现方法咨询

简化实现方案

你这个需求属于典型的按id分组的行转列聚合场景,完全不需要多次LEFT JOIN,用聚合函数就能实现,代码更简洁、执行效率也更高:

SELECT 
    id,
    MAX(RowA) AS RowA,
    MAX(RowB) AS RowB,
    MAX(RowC) AS RowC
FROM Example
GROUP BY id

实现原理

你的表中每个id对应的RowA、RowB、RowC都只有唯一的非空值,MAX/MIN这类聚合函数会自动忽略NULL值,直接取到对应的有效值,经过GROUP BY id分组后每个id仅返回一行,完全匹配你需要的结果。

如果业务场景中某个id对应同一列存在多个非空值,你可以根据使用的数据库调整聚合函数,比如MySQL用GROUP_CONCAT、PostgreSQL/SQL Server用STRING_AGG把多个值拼接输出即可。

另外你原来的写法还存在两个小问题:一是最后一个LEFT JOIN的表名误写为FLOWFILE,应该是Example;二是部分列定义末尾多了冗余逗号,用聚合写法也能避免这类语法错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:06:03