Waarden uit de vorige rij opvragen
Door de functie LAG() in een query te gebruiken, kun je rijen vóór de huidige rij benaderen.
Dit is de syntax:
LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
In deze oefening gebruik je deze functie in je query. Je analyseert de beoordelingen van chocoladerepen die zijn geproduceerd door een bedrijf genaamd "Fruition".
Dit bedrijf maakt chocolade met cacao uit verschillende delen van de wereld.
Je wilt nagaan of er een verband is tussen het cacaopercentage en de ontvangen score, voor repen die uit dezelfde locatie komen. Hiervoor vergelijk je het cacaopercentage van elke reep met het percentage van de reep die de vorige beoordeling ontving. Vervolgens bereken je het verschil tussen deze waarden en interpreteer je de resultaten.
Deze oefening maakt deel uit van de cursus
Functies voor het bewerken van data in SQL Server
Oefeninstructies
- Maak een nieuwe kolom die het cacaopercentage toont van de chocoladereep die een lagere score kreeg, met cacao uit dezelfde locatie (
broad_bean_originis hetzelfde). - Maak een nieuwe kolom met het verschil tussen het cacaopercentage van de huidige reep en het percentage van de vorige reep.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
SELECT
broad_bean_origin AS bean_origin,
rating,
cocoa_percent,
-- Retrieve the cocoa % of the bar with the previous rating
___(___)
OVER(___ broad_bean_origin ORDER BY ___) AS percent_lower_rating
FROM ratings
WHERE company = 'Fruition'
ORDER BY broad_bean_origin, rating ASC;