如何将共享id的多行合并为一行(hql)?

vi4fp9gy  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(420)

在长时间的json解码结束时,我得到一个配置单元表:

+----+--------+---------+--------+
| ID | field1 | field2  | field3 |
+----+--------+---------+--------+
|  1 | T      | NULL    | NULL   |
|  1 | NULL   | 0103210 | NULL   |
|  1 | NULL   | NULL    | NULL   |
|  1 | NULL   | NULL    | NULL   |
|  1 | NULL   | NULL    | NULL   |
|  1 | NULL   | NULL    | NULL   |
|  1 | NULL   | NULL    | NULL   |
|  1 | NULL   | NULL    | NULL   |
|  1 | NULL   | NULL    | NULL   |
|  2 | T      | NULL    | NULL   |
|  2 | NULL   | NULL    | NULL   |
|  2 | NULL   | NULL    | NULL   |
|  2 | NULL   | NULL    | NULL   |
|  2 | NULL   | NULL    | NULL   |
|  2 | NULL   | NULL    | NULL   |
|  3 | NULL   | NULL    | NULL   |
|  4 | U      | NULL    | NULL   |
|  4 | NULL   | 0103212 | NULL   |
|  4 | NULL   | NULL    | NULL   |
|  4 | NULL   | NULL    | NULL   |
|  4 | NULL   | NULL    | NULL   |
|  4 | NULL   | NULL    | NULL   |
|  4 | NULL   | NULL    | NULL   |
|  4 | NULL   | NULL    | NULL   |
|  4 | NULL   | NULL    | NULL   |
|  4 | NULL   | NULL    | NULL   |
|  4 | NULL   | NULL    | NULL   |
+----+--------+---------+--------+

这是所需的输出:

+----+--------+---------+--------+
| ID | field1 | field2  | field3 |
+----+--------+---------+--------+
|  1 | T      | 0103210 | NULL   |
|  2 | T      | NULL    | NULL   |
|  3 | NULL   | NULL    | NULL   |
|  4 | U      | 0103212 | NULL   |
+----+--------+---------+--------+

所以,我想将同一个表中具有相同id的多行合并到一行中。什么查询可以得到我想要的结果?

0mkxixxg

0mkxixxg1#

骨料使用 min() 或者 max() :

select ID, 
       max(field1) as field1,
       max(field2) as field2, 
       max(field3) as field3
  from your_table
 group by ID

相关问题