Utilizzo delle Sottoquery Interne nella Sezione FROM
Una sottoquery interna crea una tabella con la quale poi eseguiamo operazioni nella query esterna.
Da questo, possiamo concludere che possiamo anche usare una query interna nella sezione FROM
per selezionare qualcosa da questa tabella.
Consideriamo un esempio in cui dobbiamo lavorare con employees
il cui salary
è superiore a un certo valore. Ma invece di una clausola WHERE
, useremo una query interna:
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
Abbiamo creato una nuova tabella usando una sottoquery interna con la quale possiamo lavorare e raccogliere informazioni.
Nota
Nota che per una tale tabella, è essenziale fornire un alias.
Quando potrebbe essere utile?
Una tale query è altamente leggibile; a volte, può sostituire una clausola WHERE
.
Inoltre, se hai bisogno di lavorare non con l'intera tabella ma solo con una parte filtrata, una sottoquery interna nella sezione FROM
può essere estremamente utile.
Swipe to start coding
Il tuo compito è recuperare il budget medio (colonna budget
) per tutti i dipartimenti manageriali dalla tabella department
. Usa una sottoquery interna nella sezione FROM
per filtrare solo il tipo di dipartimento manageriale. Inoltre, usa l'alias manager_departments
per questa tabella in modo che il compito sia verificato correttamente.
La risposta dovrebbe avere solo una colonna, average_budget
. Questo è un alias per la funzione aggregata AVG()
.
Nota
Questo compito potrebbe essere fatto anche usando una clausola
WHERE
, ma usiamo una query annidata qui per praticare questa sintassi, che sarà utile per risolvere problemi più complessi in futuro.
Istruzioni Brevi
- Recupera il valore medio della colonna
budget
. - Assegna l'alias
average_budget
a quella colonna. - Nella clausola
FROM
, devi scrivere una query annidata. - Nella query annidata, seleziona tutte le colonne dalla tabella
department
. - Nella query annidata, usa la clausola
WHERE
con la condizionetype = 'manager'
. - Assegna l'alias
manager_departments
alla query annidata.
Soluzione
Grazie per i tuoi commenti!