Как объединить строки в улье? - PullRequest
0 голосов
/ 17 мая 2018

У меня есть производственная таблица в кусте, которая ежедневно получает дополнительные данные (измененные записи / новые записи) из внешнего источника. Например, значения в строке могут быть распределены по разным датам, например, так выглядят записи в таблице в первый день

+---+----+----+
| id|col1|col2|
+---+----+----+
|  1|  a1|  b1|
|  2|  a2|    |
|  3|    |  b3|
+---+----+----+

во второй день мы получаем следующее -

+---+----+----+
| id|col1|col2|
+---+----+----+
|  4|  a4|    |
|  2|    | b2 |
|  3|  a3|    |
+---+----+----+
which has new record as well as changed records

Результат, которого я хочу достичь, - это слияние строк на основе первичного ключа (в данном случае id) и получение и вывод, который равен -

+---+----+----+
| id|col1|col2|
+---+----+----+
|  1|  a1|  b1|
|  2|  a2| b2 |
|  3|  a3|  b3|
|  4|  a4|  b4|
+---+----+----+

Количество столбцов довольно велико, обычно в диапазоне 100-150. Цель состоит в том, чтобы предоставить последний полный обзор всех полученных данных. Как я могу сделать это в самом улье. (PS: это не должно быть отсортировано)

1 Ответ

0 голосов
/ 17 мая 2018

Это может быть заархивировано с использованием COALESCE и полного внешнего соединения.

        SELECT COALESCE(a.id ,b.id) as id ,
            COALESCE(a.col1 ,b.col1) as  col1,
            COALESCE(a.col2 ,b.col2) as col2 
        FROM tbl1 a 
        FULL OUTER JOIN table2 b
           on a.id =b.id  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...