Как создать таблицу для SQL-союза в Teradata? - PullRequest
0 голосов
/ 30 ноября 2018

Я хочу объединить две таблицы, чтобы создать основной список идентификаторов пациентов.

  1. Мой вопрос: где хранятся эти данные?

  2. Я хочу сделать левое объединение с результатами объединения.Есть ли способ перенести эти результаты в таблицу?

    SELECT patid FROM sandbox_jp.claims_women_dx_preg2
    UNION
    SELECT patid FROM sandbox_jp.claims_women_px_preg2;
    

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Логика CTE в ответе @ User_By_Already также будет работать для Teradata.

Вы также можете поместить результаты в изменчивую таблицу:

CREATE VOLATILE TABLE VT as (
SELECT patid FROM sandbox_jp.claims_women_dx_preg2
UNION
SELECT patid FROM sandbox_jp.claims_women_px_preg2)
with data
primary index(patid)
on commit preserve rows;

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

Или вы можете использовать производную таблицу, снова присоединяясь к другой таблице.

select
...
from
(SELECT patid FROM sandbox_jp.claims_women_dx_preg2
UNION
SELECT patid FROM sandbox_jp.claims_women_px_preg2) p
join <other table> on ...
0 голосов
/ 30 ноября 2018

Для MySQL, например,

CREATE TABLE new_tbl 
SELECT patid FROM db1.claims_women_dx_preg2 
UNION 
SELECT patid FROM sandbox_jp.claims_women_px_preg2
;

, но синтаксис другой для других баз данных, например, SQL Server:

CREATE patid
into new_tbl 
from (
    SELECT patid FROM [dbo].claims_women_dx_preg2 
    UNION 
    SELECT patid FROM [sandbox_jp].claims_women_px_preg2
    ) u
;

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

Если это необходимо только в течение ограниченного времени, и ваша база данных поддерживает «с», тогда

with cte as (
        SELECT patid FROM [dbo].claims_women_dx_preg2 
        UNION 
        SELECT patid FROM [sandbox_jp].claims_women_px_preg2
)
select
*
from cte
...