Je suis nouveau à Hive et mes connaissances en SQL sont un peu rouillées, ce qui pose une question sur SO.Hive: Remplir les colonnes manquantes
J'ai des données d'une table SAP dans laquelle les valeurs pour une colonne sont manquantes. Je voudrais savoir comment je peux remplir ces colonnes.
Exemple:
+----------+-----------+--------+
| EBELN | BELNR | EBELP |
|----------+-----------+--------|
| 1 | 123 | 001 |
|----------+-----------+--------|
| | 123 | 002 |
|----------+-----------+--------|
| | 123 | 003 |
+----------+-----------+--------+
Dans le tableau ci-dessus, toutes les trois rangées sont reliées les unes aux autres, mais la valeur de la colonne EBELN
est présent uniquement dans la première rangée. Lorsque je joins cette table avec une autre table en utilisant la colonne EBELN
comme clé de jointure, seule la première ligne apparaît dans la jointure. Je veux amener toutes les trois lignes dans la jointure de sortie.
Expected output:
+----------+-----------+--------+
| EBELN | BELNR | EBELP |
|----------+-----------+--------|
| 1 | 123 | 001 |
|----------+-----------+--------|
| 1 | 123 | 002 |
|----------+-----------+--------|
| 1 | 123 | 003 |
+----------+-----------+--------+
Je suis sortie attendant à être quelque chose comme ça pour que je puisse se joindre à cette table avec d'autres table en utilisant la colonne EBELN
.
La table à laquelle je me joins ne contient pas la colonne BELNR
ou EBELP
donc je ne peux pas utiliser ces colonnes pour joindre.
Je voudrais savoir si je peux utiliser self join
ou s'il y a autre chose que je peux utiliser ici.
Ajout de plus d'informations. J'ai une autre table permet de l'appeler "ABCD". Cette table contient la colonne EBELN
.
+----------+-----------+--------+
| EBELN | COL12 | COL13 |
|----------+-----------+--------|
| 1 | ABC | LMN |
|----------+-----------+--------|
| 2 | DEF | OPQ |
|----------+-----------+--------|
| 3 | GHI | RST |
+----------+-----------+--------+
je tente de se joindre à cette table "ABCD" avec table "EKPF" en utilisant la colonne EBELN
.
Je dois obtenir toutes les lignes où le nombre BELNR
est identique, mais comme BELNR
colonne n'est pas présente dans le tableau ABCD
, je ne peux pas l'utiliser pour y adhérer.
sortie finale devrait ressembler à joint
+----------+-----------+--------+--------+--------+
| EBELN | BELNR | EBELP | COL12 | COL13 |
|----------+-----------+--------+--------+--------|
| 1 | 123 | 001 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| | 123 | 002 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| | 123 | 003 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| 2 | | | DEF | OPQ |
|----------+-----------+--------+--------+--------|
| 3 | | | GHI | RST |
+----------+-----------+--------+--------+--------+
Comment les lignes liées? par colonne BELNR? Comment la colonne EBELN doit-elle être calculée? – leftjoin
Vous pouvez utiliser l'auto-jointure ou une autre méthode pour le calcul EBELN, mais vous devez d'abord définir la règle. – leftjoin
Salut, Merci pour votre temps précieux. J'ai mis à jour les détails des questions pour refléter ce que j'ai l'intention de faire. – Shekhar