Объединение двух таблиц без отношения - PullRequest
0 голосов
/ 29 марта 2020

Мне нужно объединить два источника, один из них является промежуточной таблицей с тремя строками для данных с несколькими атрибутами, он содержит такие данные, как table_id, identification, date и другие. Другая таблица имеет три строки и содержит table_id и число.

Я хочу объединить эти две таблицы, чтобы вывести только три строки, поэтому я хочу объединить все как есть. Я имею в виду, что первая строка из промежуточной таблицы «добавит» число в качестве другого атрибута из этой строки.

Таблицы не имеют ключевого отношения, поэтому нет возможности связать их вверх. То, что я сделал, это объединение с использованием левого внешнего соединения с идентификаторами, и это сработало, но это неправильный способ сделать это, я думаю, это было только потому, что table_id одинаковы.

Вот что я сделал:

enter image description here

Какой путь к go с этим? То, что я делаю в SSIS, - это извлечение из исходного файла, я заполняю измерения моей звездной схемы этими данными, а также промежуточную таблицу. Затем я анализирую настроение комментария к чату, исходящего из исходного файла, и сохраняю его в таблице измерений, чтобы наконец вставить всю информацию в таблицу фактов.

1 Ответ

2 голосов
/ 29 марта 2020

Используйте ROW_NUMBER() оконную функцию для объединения таблиц:

select t1.table_id, t1.identification, t1.date, t2.numbercolumn
from (
  select *, row_number() over (order by table_id) rn
  from table1
) t1 left join (
  select *, row_number() over (order by table_id) rn
  from table2
) t2 on t2.rn = t1.rn

2 таблицы отсортированы по их id, поэтому столбец rn в обеих таблицах будет иметь значения 1,2,3 ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...