Kom igångKom igång gratis

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

Visa kurs

Ö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;
Redigera och kör kod