Hämta värden från föregående rad
Med funktionen LAG() i en fråga kan du komma åt rader som föregår den aktuella.
Syntaxen är:
LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
I den här övningen använder du den här funktionen i din fråga. Du analyserar betygen för chokladkakor som tillverkas av ett företag som heter "Fruition".
Företaget producerar choklad med kakao från olika delar av världen.
Du vill undersöka om det finns ett samband mellan kakaoprocenten och betyget för kakor med kakao från samma ursprungsplats. Du jämför därför kakaoprocenten för varje chokladkaka med procenten för kakan som fick det närmast föregående betyget. Sedan beräknar du skillnaden mellan dessa värden och tolkar resultaten.
Den här övningen är en del av kursen
Funktioner för datamanipulering i SQL Server
Övningsinstruktioner
- Skapa en ny kolumn som visar kakaoprocenten för den chokladkaka som fick ett lägre betyg och som har kakao från samma ursprungsplats (
broad_bean_originär densamma). - Skapa en ny kolumn med skillnaden mellan den aktuella kakans kakaoprocent och procenten för föregående kaka.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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;