Hier beginnen? Deze les maakt deel uit van een volledige tutorial in het gebruik van SQL voor Data-analyse. Kijk naar het begin.

in deze les behandelen we:

  • het commando Left JOIN
  • oefenproblemen

het commando LEFT JOIN

laten we beginnen met het uitvoeren van een INNER JOIN op de Crunchbase-dataset en een kijkje nemen op de resultaten. We zullen gewoon kijken naar company-permalink in elke tabel, evenals een paar andere velden, om een idee te krijgen van wat er daadwerkelijk wordt samengevoegd.,

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 JOIN tutorial.crunchbase_acquisitions acquisitions ON companies.permalink = acquisitions.company_permalink

u kunt merken dat” 280 North ” tweemaal voorkomt in deze lijst. Dat komt omdat het twee regels heeft in detutorial.crunchbase_acquisitions tabel, die beide worden samengevoegd met detutorial.crunchbase_companies tabel.,

Probeer nu die query uit te voeren als een LEFT JOIN:

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

u kunt zien dat de eerste twee bedrijven uit de vorige resultaatset, #waywire en 1000memories, naar beneden worden geduwd door een aantal resultaten die null-waarden bevatten in de acquisitions_permalink en acquired_date velden.,

Dit komt omdat de opdracht LEFT JOIN de database vertelt om alle rijen in de tabel in de FROM clausule te retourneren, ongeacht of ze overeenkomsten hebben in de tabel in de LEFT JOIN clausule.,

Scherper uw SQL vaardigheden

U kunt verkennen van de verschillen tussen een LEFT JOIN en een JOIN door het oplossen van deze praktijk problemen:

de Praktijk Probleem

het Schrijven van een query waarmee een binnenste join tussen de tutorial.crunchbase_acquisitions tabel en de tutorial.crunchbase_companies tabel, maar in plaats van notering afzonderlijke rijen, telt het aantal niet-lege rijen in elke tabel.,

probeer het uit Zie het antwoord

Oefenprobleem

Wijzig de zoekopdracht hierboven om een LEFT JOINte zijn. Let op het verschil in resultaten.

probeer het uit Zie het antwoord

nu je een idee hebt van hoe links joins werken, probeer dan dit moeilijkere aggregatieprobleem:

Oefenprobleem

Tel het aantal unieke bedrijven (dubbeltelling bedrijven niet) en unieke verworven bedrijven per staat., Geen resultaten waarvoor er geen staat gegevens, en volgorde van het aantal verworven bedrijven van hoogste naar laagste.

probeer het uit Zie het antwoord

0