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:
123456SELECT * 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.
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.
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 betingelsentype = 'manager'. - Gi den nestede spørringen aliaset
manager_departments.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår