Starte her? Denne leksjonen er en del av en full-lengde opplæringen i bruk av SQL for Data-Analyse. Sjekk ut begynnelsen.
I denne leksjonen vil vi dekke:
- Filtrering i punkt
- Filtrering i HVOR punkt
- Praksis problemer
– Filtrering i punkt
Vanligvis, filtrering er behandlet i WHERE
klausulen når de to tabellene har allerede fått med seg. Det er mulig, selv om du kanskje vil filtrere en eller begge av tabeller, før han dem., For eksempel, du bare ønsker å skape kamper mellom tabellene under visse omstendigheter.,
ved Hjelp av Crunchbase data, la oss ta en titt på LEFT JOIN
eksempel fra en tidligere leksjon (denne gangen vil vi legge til en ORDER BY
klausulen):
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
Sammenlign følgende spørring til den forrige, og du vil se at alt i tutorial.crunchbase_acquisitions
bordet var blitt med på, bortsett fra for den raden som company_permalink
er '/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
Hva skjer ovenfor er at den betinget utsagn AND...
er evaluert før delta oppstår., Du kan tenke på det som en WHERE
klausulen som bare gjelder for ett av bordene. Du kan fortelle at denne er bare skjer i ett av bordene, fordi 1000memories permalink er fremdeles vises i kolonnen som trekker fra den andre tabellen:
– Filtrering i WHERE-betingelsen
Hvis du flytter det samme filteret til WHERE
klausulen, vil du legge merke til at filteret skjer etter tabellene er sluttet., Resultatet er at 1000memories rad og er med på den opprinnelige tabellen, men da det er filtrert ut helt (i begge tabellene) i WHERE
klausulen før visning av resultater.
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
Du kan se at 1000memories linje er ikke returnert (det ville ha vært mellom de to markerte linjene nedenfor). Merk også at filtrering i WHERE
klausulen kan også filtrere null-verdier, så vi har lagt til en ekstra linje for å sørge for å inkludere den nullverdier.,
Skjerpe dine SQL ferdigheter
For å sette dette i praksis problemer, vi kommer til å introdusere et nytt dataset: tutorial.crunchbase_investments
. Denne tabellen er også hentet fra Crunchbase og inneholder mye av den samme informasjonen som tutorial.crunchbase_companies
data. Det er det som er strukturert på en annen måte, men det inneholder én rad per investering. Det kan være flere investeringer per selskap—det er også mulig at en investor kan investere i det samme selskapet flere ganger. Kolonnen navn er ganske selvforklarende., Hva er viktig er at company_permalink
i tutorial.crunchbase_investments
tabell kart til permalink
i tutorial.crunchbase_companies
tabell. Husk at noen tilfeldige data som har blitt fjernet fra denne tabellen for å få til denne leksjonen.
Det er svært sannsynlig at du vil trenge å gjøre noen eksplorativ analyse på denne tabellen til å forstå hvordan du kan løse disse problemene.,
Praksis Problem
Skriv en spørring som viser en bedrifts navn, «status» (finnes i Selskapene i tabellen), og antall unike investorer i selskapet. Rekkefølge etter antall investorer fra flest til færrest. Grense for kun selskaper i staten New York.
Prøv det ut og Se svaret
Praksis Problem
Skriv en spørring som viser investorer basert på antall selskaper som de er investert. Inkluderer en rad for selskaper med ingen investor, og bestille fra de fleste bedrifter til minst.,
Prøv det ut og Se svaret
Leave a Reply