Bruk 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, bruker vi en indre spørring:
123456SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
Vi har opprettet en ny tabell ved hjelp av en indre delspørring som vi 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.
Swipe to start coding
Din oppgave er å hente ut gjennomsnittlig budsjett (budget-kolonnen) for alle lederavdelinger fra department-tabellen. Bruk en indre underforespørsel i FROM-delen 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 til
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
Can you explain more scenarios where using an inner subquery in the FROM clause is beneficial?
What are the differences between using a WHERE clause and an inner subquery in the FROM section?
Can you show how to add more conditions or calculations to the inner subquery?
Fantastisk!
Completion rate forbedret til 4
Bruk 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, bruker vi en indre spørring:
123456SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
Vi har opprettet en ny tabell ved hjelp av en indre delspørring som vi 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.
Swipe to start coding
Din oppgave er å hente ut gjennomsnittlig budsjett (budget-kolonnen) for alle lederavdelinger fra department-tabellen. Bruk en indre underforespørsel i FROM-delen 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 til
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