+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 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. + + + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Importeren libraries en dataset

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.

Setup

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.

eerste SQL-chunk

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
Displaying records 1 - 10
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; 
9 records
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; 
Displaying records 1 - 10
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'
  
);
6 records
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; 
3 records
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.