+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Instructies: + + Onderstaande is nodig om je notebook werkende te krijgen. + + Bij het opstarten van je notebook dien je de chunk van regel 28 t/m 40 en regel 42 t/m 46 te runnen. + + Daarna spring je naar regel 76 waar je je eerste SQL-chunk kan maken. + + + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Hieronder wordt een library geladen waar functies in zitten die we verderop in het Notebook gaan gebruiken: tidyverse. Daarnaast wordt hier de dataset geïmporteerd zodat we daar vragen aan kunnen stellen.
UPDATE dataset SET besteldatum = DATE(besteldatum, 'unixepoch'), leverdatum = DATE(leverdatum, 'unixepoch'), betaaldatum = DATE(betaaldatum, 'unixepoch');
Als je bovenstaande code uitvoert door op het groene pijltje rechtsbovenin de chunk te drukken, gebeurt er nog vrij weinig. Als het goed is verschijnt er alleen even een groen balkje naast de code regels. Tenminste, als je het Excel bestand op de juiste plek hebt geüpload. Het laden van de libraries hoeven we maar 1 keer te doen en het is wel zo overzichtelijk om dat allemaal aan het begin van je document te doen voor je de inhoud in duikt.
De dataset is nu opgeslagen in een database waarvoor we een connectie hebben gemaakt die ‘con’ heet. Elke keer als we dus gegevens uit die database willen halen zullen we dus eerst die connectie moeten gaan noemen.
In de onderstaande chunk is de meest basale vorm van een query opgesteld. Je kan deze laten uitvoeren door op de groene knop te drukken of door de query-code te selecteren en op Ctrl+Shift+Enter te drukken. Merk ook de eerste regel op waarin ‘connection=con’ staat. Deze is nodig om contact met de database te maken.
select *
from dataset
regioCode | regiomgr | mgrnm | regelOmzet | bestelnr | Verkoper | besteldatum | Jaar_bestel | Maand_bestel | leverdatum | Jaar_leverdatum | Maand_leverdaum | betaaldatum | Jaar_Betaaldum | Maand_Betaaldatum | klantnr | naam | postcodehuisnr | woonplaats | aantal | artikelnr | omschrijving | catomschrijving | prijs |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GVGH | 800 | Harrie | 146.25 | 1001 | 905 | 2012-01-06 | 2012 | 1 | 2012-01-09 | 2012 | 1 | 2012-01-18 | 2012 | 1 | 15 | Boer, de | 5463ZK1003 | Veghel | 9 | 408 | Soja Chocolademelk Biologisch | biologische artikelen | 16.25 |
GVGH | 801 | Karel | 52.50 | 1004 | 906 | 2012-01-14 | 2012 | 1 | 2012-01-20 | 2012 | 1 | 2012-01-24 | 2012 | 1 | 19 | Zuur | 5463KK103 | Veghel | 7 | 406 | Sojamelk Naturel Biologisch | biologische artikelen | 7.50 |
GVGH | 801 | Karel | 473.00 | 1014 | 906 | 2012-01-27 | 2012 | 1 | 2012-01-31 | 2012 | 1 | 2012-02-11 | 2012 | 2 | 19 | Zuur | 5463KK103 | Veghel | 22 | 401 | Kaviaar | luxe artikelen van de traitteur | 21.50 |
GVGH | 801 | Karel | 80.55 | 1014 | 906 | 2012-01-27 | 2012 | 1 | 2012-01-31 | 2012 | 1 | 2012-02-11 | 2012 | 2 | 19 | Zuur | 5463KK103 | Veghel | 9 | 405 | Magere Kwark | zuivelartikelen | 8.95 |
GVGH | 801 | Karel | 373.75 | 1014 | 906 | 2012-01-27 | 2012 | 1 | 2012-01-31 | 2012 | 1 | 2012-02-11 | 2012 | 2 | 19 | Zuur | 5463KK103 | Veghel | 23 | 409 | Vruchtenyoghurt Mango | zuivelartikelen | 16.25 |
GVGH | 800 | Harrie | 97.50 | 1016 | 905 | 2012-02-04 | 2012 | 2 | 2012-02-06 | 2012 | 2 | 2012-02-18 | 2012 | 2 | 19 | Zuur | 5463KK103 | Veghel | 6 | 409 | Vruchtenyoghurt Mango | zuivelartikelen | 16.25 |
GVGH | 802 | Bertha | 207.00 | 1017 | 904 | 2012-02-04 | 2012 | 2 | 2012-02-05 | 2012 | 2 | 2012-02-15 | 2012 | 2 | 14 | Kraymans | 5472ZK103 | Erp | 18 | 404 | Volle Yoghurt | zuivelartikelen | 11.50 |
GVGH | 802 | Bertha | 125.30 | 1017 | 904 | 2012-02-04 | 2012 | 2 | 2012-02-05 | 2012 | 2 | 2012-02-15 | 2012 | 2 | 14 | Kraymans | 5472ZK103 | Erp | 14 | 405 | Magere Kwark | zuivelartikelen | 8.95 |
GVGH | 800 | Harrie | 162.50 | 1019 | 905 | 2012-02-05 | 2012 | 2 | 2012-02-08 | 2012 | 2 | 2012-02-14 | 2012 | 2 | 15 | Boer, de | 5463ZK1003 | Veghel | 10 | 409 | Vruchtenyoghurt Mango | zuivelartikelen | 16.25 |
GVGH | 804 | Herman | 172.00 | 1023 | 901 | 2012-02-10 | 2012 | 2 | 2012-02-11 | 2012 | 2 | 2012-02-19 | 2012 | 2 | 19 | Zuur | 5463KK103 | Veghel | 8 | 401 | Kaviaar | luxe artikelen van de traitteur | 21.50 |
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Opdracht + + Bouw een aantal SQL-queries die interessante informatie opvragen uit de data. Je kan denken aan vragen zoals
Hoeveel heeft elke klant uitgegeven aan boodschappen?
SELECT naam, SUM(regelOmzet) AS uitgegeven
FROM dataset
GROUP BY naam;
naam | uitgegeven |
---|---|
Bakermans | 9907.55 |
Bocht | 13208.70 |
Boer, de | 12380.15 |
Heiden, van der | 13985.60 |
Jansen | 26548.35 |
Kraymans | 13387.65 |
Rademakers | 12556.10 |
Velzenmaker | 11231.10 |
Zuur | 13637.25 |
Welke producten worden het meest verkocht in de supermarkt in Eindhoven?
SELECT omschrijving, SUM(aantal) AS aantal
FROM dataset
WHERE regioCode = 'REHV'
Group by omschrijving;
omschrijving | aantal |
---|---|
Ganzenlever | 190 |
Kaviaar | 239 |
Magere Kwark | 261 |
Soja Chocolademelk Biologisch | 205 |
Soja Vanillevla Biologisch | 315 |
Sojamelk Gezoet Biologisch | 476 |
Sojamelk Naturel Biologisch | 188 |
Volle Yoghurt | 376 |
Vruchtenyoghurt Aardbei | 118 |
Vruchtenyoghurt Mango | 145 |
Welke klanten hebben nog nooit in Eindhoven iets gekocht?
SELECT DISTINCT naam
FROM dataset
WHERE naam NOT IN(
SELECT naam
FROM dataset
WHERE woonplaats = 'Eindhoven'
);
naam |
---|
Boer, de |
Zuur |
Kraymans |
Bakermans |
Heiden, van der |
Bocht |
Maak een lijstje van hoeveel elke regio verdient. Rank het op hoogst naar laagst?
SELECT regioCode, SUM(regelOmzet) AS totaalOmzet
FROM dataset
GROUP BY regioCode
ORDER BY totaalOmzet DESC;
regioCode | totaalOmzet |
---|---|
REHV | 47941.05 |
RHMD | 39496.35 |
GVGH | 39405.05 |
De resultaten van het notebook kan je opslaan als een HTML-pagina. Om dat te doen klik je in de bovenstaande balk op de pijl naast Preview en selecteer je Knit to HTML. Een andere optie is om Ctrl+Shift+K in te drukken om een HTML bestand te krijgen.