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

Scorri per mostrare il menu

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

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

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.

Compito

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 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!

Sezione 2. Capitolo 3
Siamo spiacenti che qualcosa sia andato storto. Cosa è successo?

Chieda ad AI

expand
ChatGPT

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

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

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

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.

Compito

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 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!

Sezione 2. Capitolo 3
Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Siamo spiacenti che qualcosa sia andato storto. Cosa è successo?
some-alt