Query UNION ALL di esempio - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Query UNION ALL di esempio

L'esempio seguente utilizza un operatore UNION ALL perché le righe duplicate, se trovate, devono essere conservate nel risultato. Per una serie specifica di ID evento, la query restituisce 0 o più righe per ogni vendita associata a ciascun evento e 0 o 1 riga per ciascun elenco di quell'evento. Gli ID evento sono unici per ogni riga nelle tabelle LISTING ed EVENT, ma potrebbero esserci più vendite per la stessa combinazione di ID evento ed elenco nella tabella SALES.

La terza colonna nel set di risultati identifica l'origine della riga. Se proviene dalla tabella SALES, è contrassegnata con "Yes" nella colonna SALESROW. SALESROW è un alias per SALES.LISTID. Se la riga proviene dalla tabella LISTING, è contrassegnata con "No" nella colonna SALESROW.

In questo caso, il set di risultati è costituito da tre righe di vendita per l'elenco 500, evento 7787. In altre parole, sono state eseguite tre diverse transazioni per l'elenco e la combinazione di eventi. Gli altri due elenchi, 501 e 502, non hanno prodotto alcuna vendita, quindi l'unica riga prodotta dalla query per questi ID elenco proviene dalla tabella LISTING (SALESROW = 'No').

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) order by listid asc; eventid | listid | salesrow ---------+--------+---------- 7787 | 500 | No 7787 | 500 | Yes 7787 | 500 | Yes 7787 | 500 | Yes 6473 | 501 | No 5108 | 502 | No (6 rows)

Se esegui la stessa query senza la parola chiave ALL, il risultato conserva solo una delle transazioni di vendita.

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) order by listid asc; eventid | listid | salesrow ---------+--------+---------- 7787 | 500 | No 7787 | 500 | Yes 6473 | 501 | No 5108 | 502 | No (4 rows)