Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Använda Inre Del-Frågor i FROM-Sektionen | Nästlade Subfrågor
Intermediär SQL

bookAnvända Inre Del-Frågor i FROM-Sektionen

En inre subfråga skapar en tabell som vi sedan utför operationer på i den yttre frågan.

Av detta kan vi dra slutsatsen att vi även kan använda en inre fråga inom FROM-sektionen för att välja något från denna tabell.

Låt oss titta på ett exempel där vi behöver arbeta med employees vars salary är över ett visst värde. Men istället för en WHERE-sats kommer vi att använda en inre fråga:

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

Vi har skapat en ny tabell med hjälp av en inre subfråga som vi kan arbeta med och samla information från.

Observera

Observera att det är avgörande att ange ett alias för en sådan tabell.

När kan detta vara användbart?

En sådan fråga är mycket lättläst; ibland kan den ersätta en WHERE-sats.

Dessutom, om du behöver arbeta inte med hela tabellen utan endast med en filtrerad del, kan en inre subfråga i FROM-sektionen vara mycket praktisk.

Uppgift

Swipe to start coding

Din uppgift är att hämta genomsnittlig budget (budget-kolumnen) för alla chefsavdelningar från tabellen department. Använd en inre subfråga i FROM-sektionen för att filtrera endast de avdelningar som är av typen chef. Använd dessutom aliaset manager_departments för denna tabell så att uppgiften kan kontrolleras korrekt.

Svaret ska endast innehålla en kolumn, average_budget. Detta är ett alias för aggregatfunktionen AVG().

Observera

Denna uppgift kan även lösas med en WHERE-sats, men vi använder en nästlad fråga här för att öva på denna syntax, vilket kommer att vara användbart för att lösa mer komplexa problem i framtiden.

Kortfattade instruktioner

  • Hämta genomsnittsvärdet för kolumnen budget.
  • Tilldela aliaset average_budget till den kolumnen.
  • I FROM-satsen ska du skriva en nästlad fråga.
  • I den nästlade frågan, välj alla kolumner från tabellen department.
  • I den nästlade frågan, använd WHERE-satsen med villkoret type = 'manager'.
  • Tilldela aliaset manager_departments till den nästlade frågan.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you explain more scenarios where using an inner subquery in the FROM clause is beneficial?

What happens if I don't provide an alias for the inner subquery?

How does this approach compare to using a WHERE clause directly?

close

Awesome!

Completion rate improved to 4

bookAnvända Inre Del-Frågor i FROM-Sektionen

Svep för att visa menyn

En inre subfråga skapar en tabell som vi sedan utför operationer på i den yttre frågan.

Av detta kan vi dra slutsatsen att vi även kan använda en inre fråga inom FROM-sektionen för att välja något från denna tabell.

Låt oss titta på ett exempel där vi behöver arbeta med employees vars salary är över ett visst värde. Men istället för en WHERE-sats kommer vi att använda en inre fråga:

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

Vi har skapat en ny tabell med hjälp av en inre subfråga som vi kan arbeta med och samla information från.

Observera

Observera att det är avgörande att ange ett alias för en sådan tabell.

När kan detta vara användbart?

En sådan fråga är mycket lättläst; ibland kan den ersätta en WHERE-sats.

Dessutom, om du behöver arbeta inte med hela tabellen utan endast med en filtrerad del, kan en inre subfråga i FROM-sektionen vara mycket praktisk.

Uppgift

Swipe to start coding

Din uppgift är att hämta genomsnittlig budget (budget-kolumnen) för alla chefsavdelningar från tabellen department. Använd en inre subfråga i FROM-sektionen för att filtrera endast de avdelningar som är av typen chef. Använd dessutom aliaset manager_departments för denna tabell så att uppgiften kan kontrolleras korrekt.

Svaret ska endast innehålla en kolumn, average_budget. Detta är ett alias för aggregatfunktionen AVG().

Observera

Denna uppgift kan även lösas med en WHERE-sats, men vi använder en nästlad fråga här för att öva på denna syntax, vilket kommer att vara användbart för att lösa mer komplexa problem i framtiden.

Kortfattade instruktioner

  • Hämta genomsnittsvärdet för kolumnen budget.
  • Tilldela aliaset average_budget till den kolumnen.
  • I FROM-satsen ska du skriva en nästlad fråga.
  • I den nästlade frågan, välj alla kolumner från tabellen department.
  • I den nästlade frågan, använd WHERE-satsen med villkoret type = 'manager'.
  • Tilldela aliaset manager_departments till den nästlade frågan.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

close

Awesome!

Completion rate improved to 4
Avsnitt 2. Kapitel 3
single

single

some-alt