開始使用免費開始

存取前一列的數值

在查詢中使用 LAG() 函式,可以存取目前這一列之前的列。

語法如下: LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)

在這個練習中,你會在查詢中使用此函式。你將分析一家名為「Fruition」的公司所生產的巧克力棒的評分。

這家公司使用來自世界各地的可可製作巧克力。

你想檢查同一產地的巧克力,其可可含量百分比與所獲得分數之間是否存在關聯。為此,你會將每根巧克力棒的可可百分比,與上一個評分的那根棒的百分比進行比較。接著,你將計算這兩者的差異,並解讀結果。

本練習屬於課程

SQL Server 的資料操作函式

檢視課程

練習說明

  • 建立一個新欄位,顯示可可來源相同(broad_bean_origin 相同)且評分較低之巧克力棒的可可百分比。
  • 建立一個新欄位,顯示目前這根巧克力棒的可可百分比與前一根的百分比之間的差值。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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;
編輯並執行程式碼