Sisäisten Alikyselyjen Käyttäminen FROM-Osiossa
Sisäinen alikysely luo taulukon, jonka kanssa suoritamme sitten operaatioita ulommassa kyselyssä.
Tästä voimme päätellä, että voimme myös käyttää sisäistä kyselyä FROM
-osiossa valitaksemme jotain tästä taulukosta.
Tarkastellaan esimerkkiä, jossa meidän on työskenneltävä employees
kanssa, joiden salary
on tietyn arvon yläpuolella. Mutta sen sijaan, että käyttäisimme WHERE
-lausetta, käytämme sisäistä kyselyä:
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
Olemme luoneet uuden taulukon sisäisellä alikyselyllä, jonka kanssa voimme työskennellä ja kerätä tietoa.
Huomio
Huomaa, että tällaiselle taulukolle on olennaista antaa alias.
Milloin tämä voi olla hyödyllistä?
Tällainen kysely on erittäin luettava; joskus se voi korvata WHERE
-ehdon.
Lisäksi, jos sinun täytyy työskennellä ei koko taulukon kanssa vaan vain suodatetun osan kanssa, sisäinen alikysely FROM
-osiossa voi olla erittäin kätevä.
Swipe to start coding
Tehtäväsi on hakea keskimääräinen budjetti (budget
-sarake) kaikille johtamisosastoille department
-taulukosta. Käytä sisäistä alikyselyä FROM
-osiossa suodattaaksesi vain johtamistyyppiset osastot. Käytä myös aliasia manager_departments
tälle taulukolle, jotta tehtävä tarkistetaan oikein.
Vastauksessa tulisi olla vain yksi sarake, average_budget
. Tämä on alias aggregaattifunktiolle AVG()
.
Huomio
Tämä tehtävä voitaisiin myös tehdä käyttämällä
WHERE
-ehtoa, mutta käytämme tässä sisäkkäistä kyselyä harjoitellaksemme tätä syntaksia, mikä on hyödyllistä ratkaistaessa monimutkaisempia ongelmia tulevaisuudessa.
Lyhyet ohjeet
- Hae
budget
-sarakkeen keskimääräinen arvo. - Määritä alias
average_budget
tälle sarakkeelle. FROM
-lausekkeessa sinun täytyy kirjoittaa sisäkkäinen kysely.- Sisäkkäisessä kyselyssä valitse kaikki sarakkeet
department
-taulukosta. - Sisäkkäisessä kyselyssä käytä
WHERE
-ehtoa ehdollatype = 'manager'
. - Määritä alias
manager_departments
sisäkkäiselle kyselylle.
Ratkaisu
Kiitos palautteestasi!