Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Bruk av Indre Underforespørsler i FROM-delen | Nøstede Underforespørsler
Videregående SQL

bookBruk av Indre Underforespørsler i FROM-delen

En indre delspørring oppretter en tabell som vi deretter utfører operasjoner på i den ytre spørringen.

Ut fra dette kan vi konkludere med at vi også kan bruke en indre spørring i FROM-seksjonen for å velge noe fra denne tabellen.

La oss se på et eksempel der vi må arbeide med employees hvor salary er over en viss verdi. Men i stedet for en WHERE-setning, vil vi bruke en indre spørring:

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

Vi har opprettet en ny tabell ved hjelp av en indre delspørring som vi kan arbeide med og hente informasjon fra.

Merk

Legg merke til at for en slik tabell er det avgjørende å angi et alias.

Når kan dette være nyttig?

En slik spørring er svært lesbar; noen ganger kan den erstatte en WHERE-setning.

I tillegg, hvis du trenger å arbeide ikke med hele tabellen, men kun med en filtrert del, kan en indre delspørring i FROM-seksjonen være svært nyttig.

Oppgave

Swipe to start coding

Din oppgave er å hente ut gjennomsnittlig budsjett (budget-kolonnen) for alle lederavdelinger fra department-tabellen. Bruk en indre spørring i FROM-seksjonen for å filtrere kun avdelinger av typen leder. Bruk også aliaset manager_departments for denne tabellen slik at oppgaven blir sjekket riktig.

Svaret skal kun ha én kolonne, average_budget. Dette er et alias for aggregatfunksjonen AVG().

Merk

Denne oppgaven kunne også vært løst med en WHERE-setning, men vi bruker en nestet spørring her for å øve på denne syntaksen, noe som vil være nyttig for å løse mer komplekse problemer senere.

Korte instruksjoner

  • Hent gjennomsnittsverdien av budget-kolonnen.
  • Gi kolonnen aliaset average_budget.
  • I FROM-setningen må du skrive en nestet spørring.
  • I den nestede spørringen, velg alle kolonner fra department-tabellen.
  • I den nestede spørringen, bruk WHERE-setning med betingelsen type = 'manager'.
  • Gi den nestede spørringen aliaset manager_departments.

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 3
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain more scenarios where using an inner subquery in the FROM clause is beneficial?

What happens if I don't provide an alias for the inner subquery?

How does this approach compare to using a WHERE clause directly?

close

Awesome!

Completion rate improved to 4

bookBruk av Indre Underforespørsler i FROM-delen

Sveip for å vise menyen

En indre delspørring oppretter en tabell som vi deretter utfører operasjoner på i den ytre spørringen.

Ut fra dette kan vi konkludere med at vi også kan bruke en indre spørring i FROM-seksjonen for å velge noe fra denne tabellen.

La oss se på et eksempel der vi må arbeide med employees hvor salary er over en viss verdi. Men i stedet for en WHERE-setning, vil vi bruke en indre spørring:

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

Vi har opprettet en ny tabell ved hjelp av en indre delspørring som vi kan arbeide med og hente informasjon fra.

Merk

Legg merke til at for en slik tabell er det avgjørende å angi et alias.

Når kan dette være nyttig?

En slik spørring er svært lesbar; noen ganger kan den erstatte en WHERE-setning.

I tillegg, hvis du trenger å arbeide ikke med hele tabellen, men kun med en filtrert del, kan en indre delspørring i FROM-seksjonen være svært nyttig.

Oppgave

Swipe to start coding

Din oppgave er å hente ut gjennomsnittlig budsjett (budget-kolonnen) for alle lederavdelinger fra department-tabellen. Bruk en indre spørring i FROM-seksjonen for å filtrere kun avdelinger av typen leder. Bruk også aliaset manager_departments for denne tabellen slik at oppgaven blir sjekket riktig.

Svaret skal kun ha én kolonne, average_budget. Dette er et alias for aggregatfunksjonen AVG().

Merk

Denne oppgaven kunne også vært løst med en WHERE-setning, men vi bruker en nestet spørring her for å øve på denne syntaksen, noe som vil være nyttig for å løse mer komplekse problemer senere.

Korte instruksjoner

  • Hent gjennomsnittsverdien av budget-kolonnen.
  • Gi kolonnen aliaset average_budget.
  • I FROM-setningen må du skrive en nestet spørring.
  • I den nestede spørringen, velg alle kolonner fra department-tabellen.
  • I den nestede spørringen, bruk WHERE-setning med betingelsen type = 'manager'.
  • Gi den nestede spørringen aliaset manager_departments.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

close

Awesome!

Completion rate improved to 4
Seksjon 2. Kapittel 3
single

single

some-alt