Exemplo de UNION ALL consulta - AWS Clean Rooms

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplo de UNION ALL consulta

O exemplo a seguir usa um UNION ALL operador porque as linhas duplicadas, se encontradas, precisam ser mantidas no resultado. Para uma série específica de eventosIDs, a consulta retorna 0 ou mais linhas para cada venda associada a cada evento e 0 ou 1 linha para cada anúncio desse evento. IDsOs eventos são exclusivos para cada linha nas EVENT tabelas LISTING e, mas pode haver várias vendas para a mesma combinação de evento e anúncio IDs na SALES tabela.

A terceira coluna no conjunto de resultados identifica a origem da linha. Se vier da SALES tabela, será marcado como “Sim” na SALESROW coluna. (SALESROWé um alias paraSALES. LISTID.) Se a linha vier da LISTING tabela, ela será marcada como “Não” na SALESROW coluna.

Nesse caso, o conjunto de resultados consiste em três linhas de vendas para a lista 500, evento 7787. Em outras palavras, três transações diferentes ocorreram para essa combinação de lista e evento. As outras duas listagens, 501 e 502, não produziram nenhuma venda, então a única linha que a consulta produz para essas listas IDs vem da LISTING tabela (SALESROW= 'Não').

select eventid, listid, 'Yes' as salesrow from sales where listid in(500,501,502) union all select eventid, listid, 'No' from listing where listid in(500,501,502) eventid | listid | salesrow ---------+--------+---------- 7787 | 500 | No 7787 | 500 | Yes 7787 | 500 | Yes 7787 | 500 | Yes 6473 | 501 | No 5108 | 502 | No

Se você executar a mesma consulta sem a ALL palavra-chave, o resultado reterá somente uma das transações de vendas.

select eventid, listid, 'Yes' as salesrow from sales where listid in(500,501,502) union select eventid, listid, 'No' from listing where listid in(500,501,502) eventid | listid | salesrow ---------+--------+---------- 7787 | 500 | No 7787 | 500 | Yes 6473 | 501 | No 5108 | 502 | No