私はハイブを初めて使っているので、SQLの知識はちょっと錆びています。ハイブ:不足している列を入力してください
1つの列の値が欠落している1つのSAPテーブルのデータがあります。私はそれらの列をどのように配置することができるか知りたい。
例:上記の表に
+----------+-----------+--------+
| EBELN | BELNR | EBELP |
|----------+-----------+--------|
| 1 | 123 | 001 |
|----------+-----------+--------|
| | 123 | 002 |
|----------+-----------+--------|
| | 123 | 003 |
+----------+-----------+--------+
、3つのすべての行が相互に関連しているが、EBELN
列の値は、最初の行のみに存在しています。
EBELN
列を結合キーとして使用してこのテーブルを他のテーブルに結合すると、最初の行のみが結合に表示されます。出力結合の3つの行をすべて取り込みたいとします。
Expected output:
+----------+-----------+--------+
| EBELN | BELNR | EBELP |
|----------+-----------+--------|
| 1 | 123 | 001 |
|----------+-----------+--------|
| 1 | 123 | 002 |
|----------+-----------+--------|
| 1 | 123 | 003 |
+----------+-----------+--------+
私はEBELN
列を使用することにより、他のテーブルで、このテーブルに参加できるように、出力は次のようなものであることを期待しています。
私が参加しているテーブルにはBELNR
またはEBELP
カラムが含まれていないため、これらのカラムを結合に使用することはできません。
私がself join
を使用できるかどうか、または私がここで使用できる他のものがあるかどうかを知りたいと思います。
さらに詳しい情報を追加してください。私は他のテーブルを "ABCD"と呼ぶことができます。そのテーブルのカラムはEBELN
です。
+----------+-----------+--------+
| EBELN | COL12 | COL13 |
|----------+-----------+--------|
| 1 | ABC | LMN |
|----------+-----------+--------|
| 2 | DEF | OPQ |
|----------+-----------+--------|
| 3 | GHI | RST |
+----------+-----------+--------+
私はEBELN
カラムを使用して「EKPF」テーブルで、この「ABCD」のテーブルに参加しようとしていました。
BELNR
の数字は同じですが、テーブルにはBELNR
の列がないので、私は参加できません。
最終参加出力は、あなたの出力を達成するためにConditional Functions機能のいずれかを使用することができます。ハイブから
+----------+-----------+--------+--------+--------+
| EBELN | BELNR | EBELP | COL12 | COL13 |
|----------+-----------+--------+--------+--------|
| 1 | 123 | 001 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| | 123 | 002 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| | 123 | 003 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| 2 | | | DEF | OPQ |
|----------+-----------+--------+--------+--------|
| 3 | | | GHI | RST |
+----------+-----------+--------+--------+--------+
どのように関係していますか?ベルン柱で? EBELN列の計算方法 – leftjoin
EBELN計算に自己結合または他の方法を使用できますが、最初にルールを定義する必要があります。 – leftjoin
こんにちは、貴重な時間をありがとう。私は何をしようとしているかを反映するために質問の詳細を更新しました。 – Shekhar