Я новичок в Hive, и мои знания SQL немного ржавые, поэтому отправляю вопрос на SO.Улей: заполнить отсутствующие колонки
У меня есть данные из одной таблицы SAP, в которой отсутствуют значения для одного столбца. Я хотел бы знать, как я могу заполнить эти столбцы.
Пример:
+----------+-----------+--------+
| EBELN | BELNR | EBELP |
|----------+-----------+--------|
| 1 | 123 | 001 |
|----------+-----------+--------|
| | 123 | 002 |
|----------+-----------+--------|
| | 123 | 003 |
+----------+-----------+--------+
В приведенной выше таблице, все три строки связаны друг с другом, но значение для столбца EBELN
присутствует только в первой строке.
Когда я присоединяюсь к этой таблице с другой таблицей, используя столбец EBELN
в качестве ключа соединения, в join появляется только первая строка. Я хочу привести все три строки в выходное соединение.
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 |
+----------+-----------+--------+
Я пытался присоединиться к «ABCD» таблицы с таблицей «EKPF» с помощью EBELN
колонки.
мне нужно, чтобы получить все строки, где BELNR
число такое же, но с тех пор BELNR
столбец не присутствует в таблице ABCD
, я не могу использовать его для соединения.
Final присоединился выход должен выглядеть
+----------+-----------+--------+--------+--------+
| EBELN | BELNR | EBELP | COL12 | COL13 |
|----------+-----------+--------+--------+--------|
| 1 | 123 | 001 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| | 123 | 002 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| | 123 | 003 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| 2 | | | DEF | OPQ |
|----------+-----------+--------+--------+--------|
| 3 | | | GHI | RST |
+----------+-----------+--------+--------+--------+
Как связаны строки? по колонке BELNR? Как рассчитывать столбец EBELN? – leftjoin
Вы можете использовать самоподключение или другой метод для расчета EBELN, но сначала вам необходимо определить правило. – leftjoin
Привет, Спасибо за ваше драгоценное время. Я обновил детали вопроса, чтобы отразить то, что я намереваюсь сделать. – Shekhar