Accesarea valorilor din rândul anterior
Folosind funcția LAG() într-o interogare, poți accesa rânduri anterioare celui curent.
Aceasta este sintaxa:
LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
În acest exercițiu, vei folosi această funcție în interogarea ta. Vei analiza ratingurile batoanelor de ciocolată produse de o companie numită „Fruition".
Această companie produce ciocolată cu cacao provenită din diferite zone ale lumii.
Vrei să verifici dacă există o corelație între procentul de cacao și scorul obținut, pentru batoanele care provin din aceeași locație. În acest scop, vei compara procentul de cacao al fiecărui baton cu procentul batonului care a primit ratingul anterior. Apoi, vei calcula diferența dintre aceste valori și vei interpreta rezultatele.
Acest exercițiu face parte din cursul
Funcții pentru manipularea datelor în SQL Server
Instrucțiuni pentru exercițiu
- Creează o nouă coloană care să afișeze procentul de cacao al batonului de ciocolată ce a primit un scor mai mic, cu cacao provenită din aceeași locație (același
broad_bean_origin). - Creează o nouă coloană cu diferența dintre procentul de cacao al batonului curent și procentul batonului anterior.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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;