Använda Inre Underfrågor i FROM-Sektionen
En inre subfråga skapar en tabell med vilken vi sedan utför operationer i den yttre frågan.
Från detta kan vi dra slutsatsen att vi också kan använda en inre fråga inom FROM-sektionen för att välja något från denna tabell.
Låt oss överväga 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-klausul kommer vi att använda en inre fråga:
123456SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
Vi har skapat en ny tabell med en inre subfråga med vilken vi kan arbeta och samla information.
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äsbar; 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 underfråga inom FROM-sektionen vara extremt användbar.
Swipe to start coding
Din uppgift är att hämta den genomsnittliga budgeten (budget-kolumnen) för alla ledningsavdelningar från department-tabellen. Använd en inre underfråga i FROM-sektionen för att filtrera endast ledningstypen av avdelning. Använd också aliaset manager_departments för denna tabell så att uppgiften kontrolleras korrekt.
Svaret ska bara ha en kolumn, average_budget. Detta är ett alias för aggregatfunktionen AVG().
Notera
Denna uppgift skulle också kunna göras 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 det genomsnittliga värdet av
budget-kolumnen. - Tilldela aliaset
average_budgettill den kolumnen. - I
FROM-satsen behöver du skriva en nästlad fråga. - I den nästlade frågan, välj alla kolumner från
department-tabellen. - I den nästlade frågan, använd
WHERE-satsen med villkorettype = 'manager'. - Tilldela aliaset
manager_departmentstill den nästlade frågan.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Can you explain why we need to use an alias for the inner subquery?
When should I use an inner subquery in the FROM clause instead of a WHERE clause?
Can you give more examples of using inner subqueries in SQL?
Awesome!
Completion rate improved to 4
Använda Inre Underfrågor i FROM-Sektionen
Svep för att visa menyn
En inre subfråga skapar en tabell med vilken vi sedan utför operationer i den yttre frågan.
Från detta kan vi dra slutsatsen att vi också kan använda en inre fråga inom FROM-sektionen för att välja något från denna tabell.
Låt oss överväga 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-klausul kommer vi att använda en inre fråga:
123456SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
Vi har skapat en ny tabell med en inre subfråga med vilken vi kan arbeta och samla information.
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äsbar; 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 underfråga inom FROM-sektionen vara extremt användbar.
Swipe to start coding
Din uppgift är att hämta den genomsnittliga budgeten (budget-kolumnen) för alla ledningsavdelningar från department-tabellen. Använd en inre underfråga i FROM-sektionen för att filtrera endast ledningstypen av avdelning. Använd också aliaset manager_departments för denna tabell så att uppgiften kontrolleras korrekt.
Svaret ska bara ha en kolumn, average_budget. Detta är ett alias för aggregatfunktionen AVG().
Notera
Denna uppgift skulle också kunna göras 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 det genomsnittliga värdet av
budget-kolumnen. - Tilldela aliaset
average_budgettill den kolumnen. - I
FROM-satsen behöver du skriva en nästlad fråga. - I den nästlade frågan, välj alla kolumner från
department-tabellen. - I den nästlade frågan, använd
WHERE-satsen med villkorettype = 'manager'. - Tilldela aliaset
manager_departmentstill den nästlade frågan.
Lösning
Tack för dina kommentarer!
single