Dostęp do wartości z poprzedniego wiersza
Funkcja LAG() umożliwia dostęp do wierszy poprzedzających bieżący wiersz w zapytaniu.
Składnia jest następująca:
LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
W tym ćwiczeniu użyjesz tej funkcji w zapytaniu. Przeanalizujesz oceny czekolad wyprodukowanych przez firmę „Fruition".
Firma ta produkuje czekoladę z kakao pochodzącego z różnych regionów świata.
Chcesz sprawdzić, czy istnieje zależność między procentową zawartością kakao a przyznaną oceną – dla batonów z tego samego miejsca pochodzenia. W tym celu porównasz zawartość kakao w każdym batonie z zawartością kakao w batonie, który otrzymał poprzednią ocenę. Następnie obliczysz różnicę między tymi wartościami i zinterpretujesz wyniki.
To ćwiczenie jest częścią kursu
Funkcje do manipulowania danymi w SQL Server
Instrukcje do ćwiczenia
- Utwórz nową kolumnę pokazującą procentową zawartość kakao w batonie czekolady, który otrzymał niższą ocenę, przy kakao z tego samego miejsca pochodzenia (ta sama wartość
broad_bean_origin). - Utwórz nową kolumnę z różnicą między zawartością kakao w bieżącym batonie a zawartością kakao w poprzednim batonie.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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;