Am Ende einer langen JSON-Dekodierung erhalte ich diese Hive-Tabelle:
+----+--------+---------+--------+
| 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 |
+----+--------+---------+--------+
Dies ist die gewünschte Ausgabe:
+----+--------+---------+--------+
| ID | field1 | field2 | field3 |
+----+--------+---------+--------+
| 1 | T | 0103210 | NULL |
| 2 | T | NULL | NULL |
| 3 | NULL | NULL | NULL |
| 4 | U | 0103212 | NULL |
+----+--------+---------+--------+
Daher möchte ich mehrere Zeilen mit derselben ID und innerhalb derselben Tabelle in einer einzigen Zeile zusammenführen. Mit welcher Abfrage kann ich das gewünschte Ergebnis erzielen?
Aggregieren mit min()
oder max()
:
select ID,
max(field1) as field1,
max(field2) as field2,
max(field3) as field3
from your_table
group by ID
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen