alkaen täältä? Tämä oppitunti on osa täyspitkää opetusohjelma käyttää SQL tietojen analysointiin. Katso alkua.
tällä oppitunnilla me kattaa:
- Suodatus ON lauseke
- Suodatus MISSÄ lauseke
- Käytännön ongelmia
Suodatus ON lauseke
Normaalisti, suodatus on käsitelty WHERE
lauseke, kun kaksi pöytää on jo liittynyt. On mahdollista, vaikka haluat ehkä suodattaa yhden tai molemmat pöydät ennen liittymistä niihin., Esimerkiksi pöytien välille halutaan luoda otteluita vain tietyissä olosuhteissa.,
Käyttämällä Crunchbase tietoja, katsotaanpa ottaa toisen tarkastella LEFT JOIN
esimerkki aiemmasta opetus (tällä kertaa saamme lisää ORDER BY
lauseke):
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
Vertaile seuraava kysely edelliseen yksi ja näet, että kaikki tutorial.crunchbase_acquisitions
taulukko liittyi paitsi rivi jossa company_permalink
on '/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
Mitä tapahtuu edellä on, että ehdollinen lausunto AND...
arvioidaan ennen liittyä tapahtuu., Voit ajatella sitä WHERE
lauseke, joka koskee vain yksi taulukoita. Voit kertoa, että tämä on vain tapahtuu yhdessä taulukoita, koska 1000memories permalink näkyy edelleen sarakkeessa, joka vetää muut taulukossa:
Suodatus where
Jos siirrät saman suodattimen WHERE
lauseke, huomaat, että suodatin tapahtuu sen jälkeen, kun pöydät ovat liittyneet., Tuloksena on, että 1000memories rivi on liittynyt päälle alkuperäisen taulukon, mutta sitten se suodatetaan pois kokonaan (sekä taulukot) WHERE
lauseke ennen tulosten esittämistä.
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
Voit nähdä, että 1000memories linja ei ole palannut (se olisi ollut kahden korostettu linjat alla). Huomaa myös, että WHERE
– lausekkeessa oleva suodatus voi myös suodattaa null-arvot, joten lisäsimme ylimääräisen rivin varmistaaksemme, että nullit sisällytetään.,
Teroita SQL-taitoja
tämän joukon käytännön ongelmia, aiomme ottaa käyttöön uusi aineisto: tutorial.crunchbase_investments
. Tämä taulukko on myös peräisin Crunchbase ja sisältää paljon samaa tietoa kuin tutorial.crunchbase_companies
tiedot. Se on kuitenkin rakenteeltaan erilainen: se sisältää yhden rivin sijoitusta kohden. Yhtiökohtaisia sijoituksia voi olla useita-on jopa mahdollista, että yksi sijoittaja voisi sijoittaa samaan yhtiöön useita kertoja. Kolumnit ovat aika itsestään selviä., Mikä on tärkeää on, että company_permalink
tutorial.crunchbase_investments
taulukko kartat permalink
tutorial.crunchbase_companies
taulukko. Muista, että joitakin satunnaisia tietoja on poistettu tästä taulukosta tämän oppitunnin vuoksi.
on hyvin todennäköistä, että sinun on tehtävä tässä taulukossa tutkimusanalyysi ymmärtääksesi, miten saatat ratkaista seuraavat ongelmat.,
Käytännössä Ongelma
Kirjoita kysely, joka osoittaa, yrityksen nimi, ”status” (löytyy Yrityksiä, taulukko), ja määrä ainutlaatuinen sijoittajille, että yhtiö. Tilaa sijoittajamäärällä useimmista fewestiin. Rajataan vain New Yorkin osavaltion yrityksiin.
Kokeile Nähdä vastaus
Käytännössä Ongelma
Kirjoita kysely, joka listaa sijoittajat perustuu yritysten määrä, jonka ne ovat sijoittaneet. Sisällytä rivi yrityksille, joilla ei ole sijoittajaa, ja tilaa useimmilta yrityksiltä vähiten.,
kokeile sitä Katso vastaus
Leave a Reply