Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Utilizzo di Sottoquery Interne nella Sezione FROM | Sottoquery Annidate
SQL Intermedio

bookUtilizzo di Sottoquery Interne nella Sezione FROM

Una sottoquery interna crea una tabella con cui poi eseguiamo operazioni nella query esterna.

Da ciò possiamo concludere che è possibile utilizzare una sottoquery interna all'interno della 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, utilizzeremo una sottoquery interna:

123456
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
copy

Abbiamo creato una nuova tabella utilizzando una sottoquery interna con cui possiamo lavorare e raccogliere informazioni.

Nota

Nota che per una tabella di questo tipo è essenziale 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.

Compito

Swipe to start coding

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. Usa inoltre l'alias manager_departments per 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().

Nota

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

  • Recupera il valore medio della colonna budget.
  • Assegna l'alias average_budget a questa colonna.
  • Nella clausola FROM, scrivi una query annidata.
  • Nella query annidata, seleziona tutte le colonne dalla tabella department.
  • Nella query annidata, utilizza la clausola WHERE con la condizione type = 'manager'.
  • Assegna l'alias manager_departments alla query annidata.

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 3
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

close

Awesome!

Completion rate improved to 4

bookUtilizzo di Sottoquery Interne nella Sezione FROM

Scorri per mostrare il menu

Una sottoquery interna crea una tabella con cui poi eseguiamo operazioni nella query esterna.

Da ciò possiamo concludere che è possibile utilizzare una sottoquery interna all'interno della 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, utilizzeremo una sottoquery interna:

123456
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
copy

Abbiamo creato una nuova tabella utilizzando una sottoquery interna con cui possiamo lavorare e raccogliere informazioni.

Nota

Nota che per una tabella di questo tipo è essenziale 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.

Compito

Swipe to start coding

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. Usa inoltre l'alias manager_departments per 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().

Nota

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

  • Recupera il valore medio della colonna budget.
  • Assegna l'alias average_budget a questa colonna.
  • Nella clausola FROM, scrivi una query annidata.
  • Nella query annidata, seleziona tutte le colonne dalla tabella department.
  • Nella query annidata, utilizza la clausola WHERE con la condizione type = 'manager'.
  • Assegna l'alias manager_departments alla query annidata.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

close

Awesome!

Completion rate improved to 4
Sezione 2. Capitolo 3
single

single

some-alt