Gebruik van Interne Subquery's in het FROM-Gedeelte
Een interne subquery creëert een tabel waarmee we vervolgens bewerkingen uitvoeren in de externe query.
Hieruit kunnen we concluderen dat we ook een interne query kunnen gebruiken binnen de FROM
sectie om iets uit deze tabel te selecteren.
Laten we een voorbeeld bekijken waarin we moeten werken met employees
wiens salary
boven een bepaalde waarde ligt. Maar in plaats van een WHERE
clausule, zullen we een interne query gebruiken:
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
We hebben een nieuwe tabel gemaakt met een interne subquery waarmee we kunnen werken en informatie kunnen verzamelen.
Opmerking
Merk op dat het voor zo'n tabel essentieel is om een alias te geven.
Wanneer kan dit nuttig zijn?
Zo'n query is zeer leesbaar; soms kan het een WHERE
-clausule vervangen.
Bovendien, als je niet met de hele tabel hoeft te werken maar alleen met een gefilterd deel, kan een innerlijke subquery binnen de FROM
-sectie uiterst handig zijn.
Swipe to start coding
Je taak is om het gemiddelde budget (budget
kolom) voor alle managementafdelingen uit de department
tabel op te halen. Gebruik een innerlijke subquery in de FROM
-sectie om alleen het managementtype van afdeling te filteren. Gebruik ook de alias manager_departments
voor deze tabel zodat de taak correct wordt gecontroleerd.
De respons moet slechts één kolom hebben, average_budget
. Dit is een alias voor de aggregatiefunctie AVG()
.
Opmerking
Deze taak kan ook worden gedaan met een
WHERE
-clausule, maar we gebruiken hier een geneste query om deze syntaxis te oefenen, wat nuttig zal zijn voor het oplossen van complexere problemen in de toekomst.
Korte instructies
- Haal de gemiddelde waarde van de
budget
kolom op. - Ken de alias
average_budget
toe aan die kolom. - In de
FROM
-clausule moet je een geneste query schrijven. - Selecteer in de geneste query alle kolommen uit de
department
tabel. - Gebruik in de geneste query de
WHERE
-clausule met de voorwaardetype = 'manager'
. - Ken de alias
manager_departments
toe aan de geneste query.
Oplossing
Bedankt voor je feedback!