Redshift中如何将同col_id的多行数据合并为单行?
Redshift 合并多行非NULL值为单行的实现方法
针对你需要将同一col_id下的多行数据(每行仅单个非NULL字段)合并为单行的需求,在Redshift中可以直接利用聚合函数来实现,具体方案如下:
解决方案代码
假设你的数据存储在名为your_table的表中,执行以下SQL即可得到目标结果:
SELECT col_id, MAX(colA) AS colA, MAX(colB) AS colB, MAX(colC) AS colC FROM your_table GROUP BY col_id;
原理说明
Redshift的MAX()(或MIN())聚合函数会自动忽略NULL值,对于每个col_id分组内的列来说,只有一个非NULL值,因此聚合后会直接返回该非NULL值,最终将多行合并为包含所有有效字段的单行。
执行结果
上述SQL执行后会输出你期望的结果:
col_id | colA | colB | colC 1 | a3d | bgq2 | upzh
内容的提问来源于stack exchange,提问作者sadvsdcasd
相关产品推荐
相关产品推荐

