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

bookBrug af Indlejrede Underforespørgsler i FROM-Sektionen

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

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

Lad os se på 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 det for en sådan tabel er afgørende at angive 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 indlejret underforespørgsel i FROM-sektionen være særdeles nyttig.

Opgave

Swipe to start coding

Din opgave er at hente det gennemsnitlige budget (budget-kolonnen) for alle ledelsesafdelinger fra department-tabellen. Brug en indre underforespørgsel i FROM-sektionen for kun at filtrere afdelinger af typen ledelse. Brug desuden aliaset manager_departments for denne tabel, så opgaven kan blive korrekt kontrolleret.

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

Bemærk

Denne opgave kunne også løses med en WHERE-klausul, men vi bruger en indlejret forespørgsel her for at øve denne syntaks, hvilket vil være nyttigt til at løse mere komplekse problemer i fremtiden.

Korte instruktioner

  • Hent gennemsnitsværdien af budget-kolonnen.
  • Tildel aliaset average_budget til denne 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 en WHERE-klausul med betingelsen type = 'manager'.
  • Tildel aliaset manager_departments til den indlejrede forespørgsel.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 3
single

single

Spørg AI

expand

Spørg AI

ChatGPT

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

close

Awesome!

Completion rate improved to 4

bookBrug af Indlejrede Underforespørgsler i FROM-Sektionen

Stryg for at vise menuen

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

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

Lad os se på 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 det for en sådan tabel er afgørende at angive 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 indlejret underforespørgsel i FROM-sektionen være særdeles nyttig.

Opgave

Swipe to start coding

Din opgave er at hente det gennemsnitlige budget (budget-kolonnen) for alle ledelsesafdelinger fra department-tabellen. Brug en indre underforespørgsel i FROM-sektionen for kun at filtrere afdelinger af typen ledelse. Brug desuden aliaset manager_departments for denne tabel, så opgaven kan blive korrekt kontrolleret.

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

Bemærk

Denne opgave kunne også løses med en WHERE-klausul, men vi bruger en indlejret forespørgsel her for at øve denne syntaks, hvilket vil være nyttigt til at løse mere komplekse problemer i fremtiden.

Korte instruktioner

  • Hent gennemsnitsværdien af budget-kolonnen.
  • Tildel aliaset average_budget til denne 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 en WHERE-klausul 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!

close

Awesome!

Completion rate improved to 4
Sektion 2. Kapitel 3
single

single

some-alt