single
Utilizzo delle Sottoquery Interne nella Sezione FROM
Scorri per mostrare il menu
Una sottoquery interna crea una tabella con cui poi si eseguono operazioni nella query esterna.
Da ciò si può concludere che è anche possibile utilizzare una sottoquery interna all'interno della sezione FROM per selezionare qualcosa da questa tabella.
Considera un esempio in cui è necessario lavorare con employees il cui salary è superiore a un certo valore. Ma invece di una clausola WHERE, si dovrebbe utilizzare una sottoquery interna:
123456SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
È stata creata una nuova tabella utilizzando una sottoquery interna con cui è possibile lavorare e raccogliere informazioni.
Nota che per una tabella di questo tipo è fondamentale fornire un alias.
Quando può essere utile?
Una query di questo tipo è altamente leggibile; a volte può sostituire una clausola WHERE.
Inoltre, se è necessario lavorare non con l'intera tabella ma solo con una parte filtrata, una sottoquery interna nella sezione FROM può risultare estremamente utile.
Scorri per iniziare a programmare
Il tuo compito è recuperare il budget medio (colonna budget) per tutti i dipartimenti manageriali dalla tabella department. Utilizza una sottoquery interna nella sezione FROM per filtrare solo i dipartimenti di tipo manageriale. Assegna inoltre l'alias manager_departments a questa tabella affinché il compito venga verificato correttamente.
La risposta deve avere una sola colonna, average_budget. Questo è un alias per la funzione aggregata AVG().
Questo esercizio potrebbe essere risolto anche utilizzando una clausola WHERE, ma qui si utilizza una query annidata per esercitarsi con questa sintassi, che sarà utile per risolvere problemi più complessi in futuro.
Istruzioni sintetiche
- Recuperare il valore medio della colonna
budget. - Assegnare l'alias
average_budgeta questa colonna. - Nella clausola
FROM, scrivere una query annidata. - Nella query annidata, selezionare tutte le colonne dalla tabella
department. - Nella query annidata, utilizzare la clausola
WHEREcon la condizionetype = 'manager'. - Assegnare l'alias
manager_departmentsalla query annidata.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione