Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Brug af Indre Subforespørgsler i the FROM-Sektionen | Indlejrede Underforespørgsler
Mellemliggende SQL

Stryg for at vise menuen

book
Brug af Indre Subforespørgsler i the FROM-Sektionen

En indre underforespørgsel skaber en tabel, som vi derefter udfører operationer på i den ydre forespørgsel.

Ud fra dette kan vi konkludere, at vi også kan bruge en indre forespørgsel inden for FROM sektionen for at vælge noget fra denne tabel.

Lad os overveje et eksempel, hvor vi skal arbejde med employees, hvis salary er over en bestemt værdi. Men i stedet for en WHERE klausul, vil vi bruge en indre forespørgsel:

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

Vi har oprettet en ny tabel ved hjælp af en indre underforespørgsel, som vi kan arbejde med og indsamle information fra.

Bemærk

Bemærk, at for en sådan tabel er det essentielt at give et alias.

Hvornår kan dette være nyttigt?

En sådan forespørgsel er meget læsbar; nogle gange kan den erstatte en WHERE klausul.

Derudover, hvis du har brug for at arbejde ikke med hele tabellen men kun med en filtreret del, kan en indre underforespørgsel inden for FROM sektionen være yderst praktisk.

Opgave

Swipe to start coding

Din opgave er at hente det gennemsnitlige budget (budget kolonne) for alle ledelsesafdelinger fra department tabellen. Brug en indre underforespørgsel i FROM sektionen for kun at filtrere ledelsestypen af afdeling. Brug også aliaset manager_departments for denne tabel, så opgaven kontrolleres korrekt.

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

Bemærk

Denne opgave kunne også udføres ved hjælp af en WHERE klausul, men vi bruger en indlejret forespørgsel her for at øve denne syntaks, som vil være nyttig til at løse mere komplekse problemer i fremtiden.

Korte instruktioner

  • Hent gennemsnitsværdien af budget kolonnen.
  • Tildel aliaset average_budget til den kolonne.
  • I FROM klausulen skal du skrive en indlejret forespørgsel.
  • I den indlejrede forespørgsel skal du vælge alle kolonner fra department tabellen.
  • I den indlejrede forespørgsel skal du bruge WHERE klausulen med betingelsen type = 'manager'.
  • Tildel aliaset manager_departments til den indlejrede forespørgsel.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 3
Vi beklager, at noget gik galt. Hvad skete der?

Spørg AI

expand
ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

book
Brug af Indre Subforespørgsler i the FROM-Sektionen

En indre underforespørgsel skaber en tabel, som vi derefter udfører operationer på i den ydre forespørgsel.

Ud fra dette kan vi konkludere, at vi også kan bruge en indre forespørgsel inden for FROM sektionen for at vælge noget fra denne tabel.

Lad os overveje et eksempel, hvor vi skal arbejde med employees, hvis salary er over en bestemt værdi. Men i stedet for en WHERE klausul, vil vi bruge en indre forespørgsel:

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

Vi har oprettet en ny tabel ved hjælp af en indre underforespørgsel, som vi kan arbejde med og indsamle information fra.

Bemærk

Bemærk, at for en sådan tabel er det essentielt at give et alias.

Hvornår kan dette være nyttigt?

En sådan forespørgsel er meget læsbar; nogle gange kan den erstatte en WHERE klausul.

Derudover, hvis du har brug for at arbejde ikke med hele tabellen men kun med en filtreret del, kan en indre underforespørgsel inden for FROM sektionen være yderst praktisk.

Opgave

Swipe to start coding

Din opgave er at hente det gennemsnitlige budget (budget kolonne) for alle ledelsesafdelinger fra department tabellen. Brug en indre underforespørgsel i FROM sektionen for kun at filtrere ledelsestypen af afdeling. Brug også aliaset manager_departments for denne tabel, så opgaven kontrolleres korrekt.

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

Bemærk

Denne opgave kunne også udføres ved hjælp af en WHERE klausul, men vi bruger en indlejret forespørgsel her for at øve denne syntaks, som vil være nyttig til at løse mere komplekse problemer i fremtiden.

Korte instruktioner

  • Hent gennemsnitsværdien af budget kolonnen.
  • Tildel aliaset average_budget til den kolonne.
  • I FROM klausulen skal du skrive en indlejret forespørgsel.
  • I den indlejrede forespørgsel skal du vælge alle kolonner fra department tabellen.
  • I den indlejrede forespørgsel skal du bruge WHERE klausulen med betingelsen type = 'manager'.
  • Tildel aliaset manager_departments til den indlejrede forespørgsel.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 3
Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Vi beklager, at noget gik galt. Hvad skete der?
some-alt