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 | Nestede Underforespørsler
Videregående SQL
Seksjon 2. Kapittel 3
single

single

Bruk av Indre Underforespørsler i FROM-delen

Sveip for å vise menyen

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

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

Se for deg et eksempel der du må arbeide med employees hvor salary er over en viss verdi. Men i stedet for en WHERE-setning, skal du bruke en indre spørring:

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

En ny tabell er opprettet ved hjelp av en indre spørring som du kan arbeide med og hente informasjon fra.

Note
Merk

Merk at for en slik tabell er det viktig å 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

Sveip for å begynne å kode

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().

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

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

some-alt