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.
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:
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
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.
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 villkorettype = 'manager'
. - Tilldela aliaset
manager_departments
till 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 happens if I don't provide an alias for the inner subquery?
How does this approach compare to using a WHERE clause directly?
Awesome!
Completion rate improved to 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.
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:
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
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.
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 villkorettype = 'manager'
. - Tilldela aliaset
manager_departments
till den nästlade frågan.
Lösning
Tack för dina kommentarer!
Awesome!
Completion rate improved to 4single