Объединение данных из нескольких таблиц в один столбец - PullRequest
0 голосов
/ 23 мая 2018

Мой текущий вывод из таблицы A выглядит следующим образом:

id  event        timestamp              registered acct_add funded applied 
1   Register     5/18/2018 4:00:00 AM   1         0         0      0 
1   AddAccount   5/18/2018 5:00:00 AM   0         1         0      0
1   Funded       5/18/2018 6:00:00 AM   0         0         1      0 
2   Register     5/18/2018 7:00:00 AM   1         0         0      0
2   AddAccount   5/18/2018 8:00:00 AM   0         1         0      0
2   Funded       5/18/2018 9:00:00 AM   0         0         1      0 

Предполагается, что значения для event будут:

'Register', 
'AddAccount',
'Funded',
'Applied'(*)

Оказывается, что до определенной датыПоследнее событие не было стрельбы.Однако таблица B имеет два столбца: id, application_date и может быть преобразована в:

id  application_date       applied 
1   5/18/2018 6:30:00 AM   1         
2   5/18/2018 9:30:00 AM   1     

На самом деле мой запрос представляет собой комбинацию из 5+ таблиц и более 100 строк кода, поэтомуПодскажите, пожалуйста, как можно объединить две таблицы, чтобы включить одно представление , желательно без объединения , такое, что:

id  event        timestamp              registered acct_add funded applied 
1   Register     5/18/2018 4:00:00 AM   1         0         0      0 
1   AddAccount   5/18/2018 5:00:00 AM   0         1         0      0
1   Funded       5/18/2018 6:00:00 AM   0         0         1      0 
1   Applied      5/18/2018 6:30:00 AM   0         0         0      1 
2   Register     5/18/2018 7:00:00 AM   1         0         0      0
2   AddAccount   5/18/2018 8:00:00 AM   0         1         0      0
2   Funded       5/18/2018 9:00:00 AM   0         0         1      0 
2   Applied      5/18/2018 9:30:00 AM   0         0         0      1 

Спасибо!

Ответы [ 2 ]

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

Это настройка ответа Импалера на этап Таблицы B в том же порядке, что и в Таблице A, текст в одинарных кавычках, и изменение последнего 0 на 1, чтобы указать, что идентификатор применяется положительно.

select * from (
  select * from table_a
  union all select id, 'Applied', application_date,  0, 0, 0, 1 from table_b
  ) all_rows
order by id, timestamp;

Я бы предложил это как комментарий к вашему ответу, но пока не могу комментировать.

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

Использование union all решение выглядит довольно просто:

select * from (
  select * from table_a
  union all select id, 'Applied', application_date,  0, 0, 0, 1 from table_b
  ) all_rows
order by id, timestamp;
...