如何在Redshift中使用SQL将两行合并为一行?
在Redshift中可以通过分组聚合的方式实现这种合并需求,具体使用GROUP BY结合MAX()函数即可达到效果:
实现SQL
SELECT ID, MAX("Flag?") AS "Flag?", MAX("Plan?") AS "Plan?" FROM your_table -- 替换为你的实际表名 GROUP BY ID;
逻辑说明
- 按
ID分组,将同一ID的多条记录聚合为一条 - 对
Flag?和Plan?字段使用MAX()函数,因为每个ID对应的两个记录中,每个字段分别是0和1,取最大值就能得到1,正好匹配期望的合并结果
输入结果集
| ID | Flag? | Plan? |
|---|---|---|
| MX_123 | 0 | 1 |
| MX_123 | 1 | 0 |
| MX_456 | 1 | 0 |
| MX_456 | 0 | 1 |
期望输出结果集
| ID | Flag? | Plan? |
|---|---|---|
| MX_123 | 1 | 1 |
| MX_456 | 1 | 1 |
内容的提问来源于stack exchange,提问作者sTonystork
相关产品推荐
相关产品推荐

