börjar här? Den här lektionen är en del av en handledning i full längd för att använda SQL för dataanalys. Kolla in början.
i den här lektionen täcker vi:
- filtrering i On-klausulen
- filtrering i WHERE-klausulen
- Övningsproblem
filtrering i ON-klausulen
normalt behandlas filtrering iWHERE
– klausulen när de två tabellerna redan har anslutits. Det är möjligt, men att du kanske vill filtrera en eller båda tabellerna innan du ansluter dem., Till exempel vill du bara skapa matcher mellan tabellerna under vissa omständigheter.,
använd Crunchbase-data, låt oss ta en titt på LEFT JOIN
exempel från en tidigare lektion (den här gången lägger vi till en ORDER BY
– klausul):
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
jämför följande fråga med den föregående och du kommer att se att allt i tutorial.crunchbase_acquisitions
jämför följande fråga med den föregående och du kommer att se att allt i tutorial.crunchbase_acquisitions
filtrering i WHERE-klausulen
om du flyttar samma filter till WHERE
– klausulen kommer du att märka att filtret händer efter att tabellerna har anslutits., Resultatet är att raden 1000memories förenas på den ursprungliga tabellen, men sedan filtreras den ut helt (i båda tabellerna) i WHERE
innan resultaten visas.
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 att 1000memories-linjen inte returneras (det skulle ha varit mellan de två markerade linjerna nedan). Observera också att filtrering iWHERE
– klausulen också kan filtrera null-värden, så vi lade till en extra rad för att se till att inkludera null-värdena.,
vässa dina SQL-färdigheter
för denna uppsättning övningsproblem kommer vi att introducera en ny dataset:tutorial.crunchbase_investments
. Den här tabellen kommer också från CrunchBase och innehåller mycket av samma information som data tutorial.crunchbase_companies
. Det är strukturerat annorlunda, men: det innehåller en rad per investering. Det kan finnas flera investeringar per företag—det är även möjligt att en investerare kan investera i samma företag flera gånger. Kolumnnamnen är ganska självförklarande., Vad som är viktigt är attcompany_permalink
I tabellentutorial.crunchbase_investments
tillpermalink
I tabellentutorial.crunchbase_companies
. Tänk på att vissa slumpmässiga data har tagits bort från den här tabellen för lektionens skull.
det är mycket troligt att du kommer att behöva göra några undersökande analys på denna tabell för att förstå hur du kan lösa följande problem.,
Övningsproblem
Skriv en fråga som visar ett företags namn, ”status” (finns i Företagstabellen) och antalet unika investerare i det företaget. Beställ av antalet investerare från mest till minst. Begränsa till endast företag i delstaten New York.
prova det se svaret
öva Problem
Skriv en fråga som listar investerare baserat på antalet företag där de investeras. Inkludera en rad för företag utan investerare och order från de flesta företag till minst.,
prova det se svaret
Leave a Reply