Menu
Coddy logo textTech

Sottoquery - Parte 2

Fa parte della sezione Fondamenti del percorso SQL di Coddy. Lezione 39 di 72.

Esistono tre tipi principali di sottoquery:

  1. Sottoquery scalari - Restituiscono un singolo valore (una riga, una colonna)
  2. Sottoquery di riga - Restituiscono una singola riga con più colonne
  3. 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
challenge icon

Sfida

Facile

Tabelle 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:

  1. Per prima cosa, scrivi una sottoquery che calcoli la media di tutte le quantità nel negozio: SELECT AVG(quantity) FROM shop
  2. Poi, per ogni categoria, somma le quantità e confrontale con questa sottoquery usando la parola chiave HAVING

Provalo tu

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground SQL