有什么办法可以实现行合并?

时间:2019-07-18 16:04:23

标签: sql hive impala

我有一张桌子

| ID  |  V1  |  V2   |   
| 100 |  1   |  1    |
| 100 | null |  1    |
| 101 | null |  null |
| 101 |  1   |  1    |
| 102 |  1   |  null |
| 102 |  1   |  null |

需要样本输出:

ID 100在至少一行中具有V1值,因此需要1

与ID 101相同,至少其中一行具有V1值,因此需要1

ID 102两行都没有V2值,因此需要为空

必填输出

| ID  |  V1  |  V2   |
| 100 |  1   |  1    |
| 101 |  1   |  1    |
| 102 |  1   |  null |

试图将这些值合并到一个列表中并获得最大值

有没有更简单的功能可以实现这一目标?

2 个答案:

答案 0 :(得分:1)

您可以进行聚合:

select id, max(v1) as v1, max(v2) as v2
from table t
group by id;

答案 1 :(得分:1)

select ID, max(V1) as V1, max(V2) as V2 from table group by ID;