Sottoquery - Parte 2
Fa parte della sezione Fondamenti del percorso SQL di Coddy. Lezione 39 di 72.
Esistono tre tipi principali di sottoquery:
- Sottoquery scalari - Restituiscono un singolo valore (una riga, una colonna)
- Sottoquery di riga - Restituiscono una singola riga con più colonne
- Sottoquery di tabella - Restituiscono più righe e colonne
Ad esempio, ecco alcuni casi d'uso per ciascun tipo di sottoquery:
Sottoquery scalare: trova i dipendenti che guadagnano più dello stipendio medio:
SELECT name, salary
FROM employees
WHERE salary > (
SELECT AVG(salary)
FROM employees
);Sottoquery di riga - Trova il dipendente o i dipendenti con lo stesso reparto e stipendio di Alice
SELECT name
FROM employees
WHERE (department, salary) = (
SELECT department, salary
FROM employees
WHERE name = 'Alice'
);Sottoquery nelle tabelle - Mostra i dipartimenti e il loro numero di dipendenti
SELECT department, count
FROM (
SELECT department, COUNT(*) as count
FROM employees
GROUP BY department
) as dept_counts;Nota i casi d'uso:
- Scalare - Confronti semplici (>, <, =)
- Quando devi corrispondere a più colonne
- Quando hai bisogno di eseguire una query su un insieme di risultati
Sfida
FacileTabelle e colonne disponibili:
shop:price,quantity,category,list_date
Trova le categorie in cui la quantità totale è maggiore della media di tutte le quantità nel negozio. Restituisci category e la quantità sommata con il nome total_quantity.
Importante: Devi usare una sottoquery all'interno della clausola HAVING per calcolare la media. Non usare un valore preimpostato o una query separata: la sottoquery deve calcolare AVG(quantity) direttamente dalla tabella shop all'interno di HAVING.
Passaggi per risolvere:
- Per prima cosa, scrivi una sottoquery che calcoli la media di tutte le quantità nel negozio:
SELECT AVG(quantity) FROM shop - Poi, per ogni categoria, somma le quantità e confrontale con questa sottoquery usando la parola chiave
HAVING
Provalo tu
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Altre parole chiave
La parola chiave INLa parola chiave BETWEENLa parola chiave LIKELa parola chiave ASRiepilogo - Modelli di telefoni cellulari2Condizioni
Basi delle condizioniLa parola chiave ANDLa parola chiave ORLa parola chiave NOTCombinare più condizioniParentesiValori booleani5Operazioni aritmetiche
Operatori matematiciColonne matematicheL’operazione moduloLa funzione ROUND()3Formato di restituzione specifico
Valori nullOrdinare i risultati Parte 1Ordinare i risultati Parte 2Riepilogo - Azienda di sicurezza informaticaLimitare il numero di recordRiepilogo - Fabbrica di veicoli6Sfide introduttive
Ripasso - Elezione parlamentareRipasso - Arresto di un criminale da parte della poliziaRipasso - Contenitore per bevande da barRipasso - Progetta nuove colonne9Tabelle multiple
JOIN di base, parte 1JOIN di base, parte 2Riepilogo - JOINSelf joinRiepilogo - Self joinUNIONSemplificare le query, parola chiave WITHRiepilogo - Query con WITHRiepilogo - Impresa edile immobiliare12Funzioni finestra, parte 2
Funzioni RANK e DENSE_RANKRipasso: RANK e DENSE_RANKFunzione NTILEFunzioni di aggregazioneCriteri ROWS e RANGEEsercitati da solo: Playground SQL