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 the FROM-Seksjonen | Nestede Underforespørsler
Videregående SQL

Sveip for å vise menyen

book
Bruk av Indre Underforespørsler i the FROM-Seksjonen

En indre underforespørsel lager en tabell som vi deretter utfører operasjoner på i den ytre forespørselen.

Fra dette kan vi konkludere med at vi også kan bruke en indre forespørsel i FROM-seksjonen for å velge noe fra denne tabellen.

La oss vurdere et eksempel der vi trenger å jobbe med employees hvis salary er over en viss verdi. Men i stedet for en WHERE-klausul, vil vi bruke en indre forespørsel:

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 underforespørsel som vi kan jobbe med og samle informasjon fra.

Merk

Legg merke til at for en slik tabell er det viktig å gi et alias.

Når kan dette være nyttig?

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

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

Oppgave

Swipe to start coding

Din oppgave er å hente den gjennomsnittlige budsjettet (budget-kolonnen) for alle lederavdelinger fra department-tabellen. Bruk en indre underspørring i FROM-seksjonen for å filtrere bare ledertypen av avdeling. Bruk også aliaset manager_departments for denne tabellen slik at oppgaven blir sjekket riktig.

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

Merk

Denne oppgaven kunne også blitt gjort ved å bruke en WHERE-klausul, men vi bruker en nestet spørring her for å øve på denne syntaksen, som vil være nyttig for å løse mer komplekse problemer i fremtiden.

Korte Instruksjoner

  • Hent gjennomsnittsverdien av budget-kolonnen.
  • Tildel aliaset average_budget til den kolonnen.
  • I FROM-klausulen 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-klausulen med betingelsen type = 'manager'.
  • Tildel aliaset manager_departments til den nestede spørringen.

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
Vi beklager at noe gikk galt. Hva skjedde?

Spør AI

expand
ChatGPT

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

book
Bruk av Indre Underforespørsler i the FROM-Seksjonen

En indre underforespørsel lager en tabell som vi deretter utfører operasjoner på i den ytre forespørselen.

Fra dette kan vi konkludere med at vi også kan bruke en indre forespørsel i FROM-seksjonen for å velge noe fra denne tabellen.

La oss vurdere et eksempel der vi trenger å jobbe med employees hvis salary er over en viss verdi. Men i stedet for en WHERE-klausul, vil vi bruke en indre forespørsel:

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 underforespørsel som vi kan jobbe med og samle informasjon fra.

Merk

Legg merke til at for en slik tabell er det viktig å gi et alias.

Når kan dette være nyttig?

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

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

Oppgave

Swipe to start coding

Din oppgave er å hente den gjennomsnittlige budsjettet (budget-kolonnen) for alle lederavdelinger fra department-tabellen. Bruk en indre underspørring i FROM-seksjonen for å filtrere bare ledertypen av avdeling. Bruk også aliaset manager_departments for denne tabellen slik at oppgaven blir sjekket riktig.

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

Merk

Denne oppgaven kunne også blitt gjort ved å bruke en WHERE-klausul, men vi bruker en nestet spørring her for å øve på denne syntaksen, som vil være nyttig for å løse mer komplekse problemer i fremtiden.

Korte Instruksjoner

  • Hent gjennomsnittsverdien av budget-kolonnen.
  • Tildel aliaset average_budget til den kolonnen.
  • I FROM-klausulen 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-klausulen med betingelsen type = 'manager'.
  • Tildel aliaset manager_departments til den nestede spørringen.

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
Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Vi beklager at noe gikk galt. Hva skjedde?
some-alt