kezdő itt? Ez a lecke egy teljes hosszúságú bemutató része az SQL adatelemzéshez. Nézze meg az elején.
ebben A leckében megismerkedünk:
- Szűrés a záradék
- Szűrés a HOL záradék
- Gyakorlat problémák
Szűrés a záradék
normál esetben, a szűrés feldolgozott a WHERE
záradék ha a két kocka már csatlakozott. Lehetséges, bár érdemes szűrni az egyik vagy mindkét táblát, mielőtt csatlakozna hozzájuk., Például csak bizonyos körülmények között szeretne mérkőzéseket létrehozni a táblák között.,
A Crunchbase adatok, vessünk még egy pillantást a LEFT JOIN
példa egy korábbi lecke (ezúttal majd a hozzáadás egy ORDER BY
záradék):
SELECT companies.permalink AS companies_permalink, companies.name AS companies_name, acquisitions.company_permalink AS acquisitions_permalink, acquisitions.acquired_at AS acquired_date FROM tutorial.crunchbase_companies companies LEFT JOIN tutorial.crunchbase_acquisitions acquisitions ON companies.permalink = acquisitions.company_permalink ORDER BY 1
Hasonlítsd össze a következő kérdés, hogy az előző látni fogja, hogy minden a tutorial.crunchbase_acquisitions
asztal be, kivéve a sor, amelyre company_permalink
'/company/1000memories'
:
SELECT companies.permalink AS companies_permalink, companies.name AS companies_name, acquisitions.company_permalink AS acquisitions_permalink, acquisitions.acquired_at AS acquired_date FROM tutorial.crunchbase_companies companies LEFT JOIN tutorial.crunchbase_acquisitions acquisitions ON companies.permalink = acquisitions.company_permalink AND acquisitions.company_permalink != '/company/1000memories' ORDER BY 1
Mi történik felett, hogy a feltételes kijelentés AND...
értékelik, mielőtt a join fordul elő., Úgy tekinthet rá, mint egy WHERE
záradék, amely csak az egyik táblára vonatkozik. Azt lehet mondani, hogy ez csak akkor történik meg, az egyik a kocka, mert a 1000memories permalink mindig jelenik meg az oszlopban, hogy húzza a másik táblázat:
Szűrés a HOL záradék
Ha mozog ugyanazt a szűrőt, hogy a WHERE
záradék, észre fogja venni, hogy a szűrő után történik, az asztalok csatlakozott., Az eredmény az, hogy az 1000memories sor csatlakozik az eredeti táblához, de akkor teljesen kiszűrik (mindkét táblázatban) a WHERE
záradékot az eredmények megjelenítése előtt.
SELECT companies.permalink AS companies_permalink, companies.name AS companies_name, acquisitions.company_permalink AS acquisitions_permalink, acquisitions.acquired_at AS acquired_date FROM tutorial.crunchbase_companies companies LEFT JOIN tutorial.crunchbase_acquisitions acquisitions ON companies.permalink = acquisitions.company_permalink WHERE acquisitions.company_permalink != '/company/1000memories' OR acquisitions.company_permalink IS NULL ORDER BY 1
láthatjuk, hogy az 1000memories vonal nem kerül vissza (az alábbi két kiemelt vonal között lett volna). Vegye figyelembe azt is, hogy a WHERE
záradék szűrheti a null értékeket is, ezért hozzáadtunk egy extra sort, hogy megbizonyosodjunk arról, hogy a nullokat tartalmazza.,
élesítse SQL képességeit
ehhez a gyakorlati problémákhoz új adatkészletet fogunk bevezetni: tutorial.crunchbase_investments
. Ez a táblázat is származik Crunchbase tartalmaz sok azonos információt, mint a tutorial.crunchbase_companies
adatok. Ez strukturált másképp, bár: ez tartalmaz egy sor befektetésenként. Társaságonként több befektetés is lehet-még az is lehetséges, hogy egy befektető többször is befektethet ugyanabba a társaságba. Az oszlopnevek eléggé magától értetődőek., Ami fontos, hogy company_permalink
a tutorial.crunchbase_investments
táblatérképek permalink
a tutorial.crunchbase_companies
táblázatban. Ne feledje, hogy néhány véletlenszerű adatot eltávolítottak ebből a táblázatból a lecke kedvéért.
nagyon valószínű, hogy meg kell tennie néhány feltáró elemzést ezen az asztalon, hogy megértse, hogyan oldhatja meg a következő problémákat.,
Practice Problem
írjon egy lekérdezést, amely megmutatja a vállalat nevét,” status ” (megtalálható a vállalatok táblázatában), valamint az adott vállalat egyedi befektetőinek számát. Rendelje meg a befektetők számát A legtöbbtől a kevesigest. Csak a New York állambeli vállalatokra korlátozódik.
próbálja ki lásd a választ
Practice Problem
írjon egy lekérdezést, amely felsorolja a befektetőket azon vállalatok száma alapján, amelyekben befektetnek. Sorolja be a befektető nélküli cégeket, és rendelje meg a legtöbb cégtől a legkevesebbet.,
próbálja ki lásd a választ
Leave a Reply