Anvä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.
Utifrån 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:
123456SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
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 att det är nödvändigt 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 användbar.
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().
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_budgettill 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 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 more scenarios where using an inner subquery in the FROM clause is beneficial?
What are the differences between using a WHERE clause and an inner subquery in the FROM section?
Can you show how to add more conditions or calculations to the inner subquery?
Fantastiskt!
Completion betyg förbättrat till 4
Anvä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.
Utifrån 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:
123456SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
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 att det är nödvändigt 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 användbar.
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().
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_budgettill 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 villkorettype = 'manager'. - Tilldela aliaset
manager_departmentstill den nästlade frågan.
Lösning
Tack för dina kommentarer!
single