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 Underfrågor
Intermediär SQL
Avsnitt 2. Kapitel 3
single

single

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

Svep för att visa menyn

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

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

Tänk på ett exempel där du behöver arbeta med employees vars salary är över ett visst värde. Men istället för en WHERE-sats ska du använda en inre fråga:

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

En ny tabell har skapats med en inre subfråga som du kan arbeta med och samla information från.

Note
Notera

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

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 bara med en filtrerad del, kan en inre subfråga i FROM-sektionen vara mycket användbar.

Uppgift

Svep för att börja koda

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().

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 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!

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

some-alt