UNION vs UNION ALL
Fa parte della sezione Oltre le basi del percorso SQL di Coddy. Lezione 16 di 27.
Hai incontrato UNION in Fondamenti: impila due insiemi di risultati uno sopra l'altro. Per impostazione predefinita, inoltre, rimuove i duplicati, il che comporta un ordinamento aggiuntivo.
SELECT name FROM authors
UNION
SELECT name FROM editorsUNION ALL impila nello stesso modo, ma mantiene i duplicati. È più veloce ed è quasi sempre ciò che vuoi quando sai che i due insiemi non possono produrre la stessa riga, oppure quando vuoi contare ogni occorrenza.
SELECT name FROM authors
UNION ALL
SELECT name FROM editorsEntrambi i lati devono restituire lo stesso numero di colonne, nello stesso ordine, con tipi compatibili.
Sfida
FacileTabelle e colonne disponibili:
online_orders:order_no,amountretail_orders:ticket_no,total
Le due tabelle tengono traccia degli ordini provenienti da canali diversi, con nomi di colonna diversi. Restituisci un unico elenco combinato di tutti gli ordini con le colonne:
channel:'online'o'retail'order_id:order_noper gli ordini online,ticket_noper quelli al dettaglioamount: il totale dell'ordine (daamountototal)
Mantieni tutte le righe (senza deduplicazione). Ordina per amount in ordine decrescente.
Provalo tu
-- due SELECT allineate alle stesse 3 colonne, unite con UNION ALL
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Oltre le basi
2Funzioni sulle stringhe
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE e TRIMConcatenare con ||Ripasso - Fatture3Aggregazione condizionale
COUNT con CASESUM con CASETrasformare le righe in colonneRiepilogo - Fonti di trafficoEsercitati da solo: Playground SQL