SQL基礎:SQL窗口函數之取值窗口函數的使用
時間:2024-02-05 12:47作者:下載吧人氣:19
SQL窗口函數
取值窗口函數可以用于返回窗口內指定位置的數據行。常見的取值窗口函數如下:
- LAG函數可以返回窗口內當前行之前的第N行數據。
- LEAD函數可以返回窗口內當前行之后的第N行數據。
- FIRST_VALUE函數可以返回窗口內第一行數據。
- LAST_VALUE函數可以返回窗口內最后一行數據。
- NTH_VALUE函數可以返回窗口內第N行數據。
其中,LAG函數和LEAD函數不支持動態的窗口大小,它們以整個分區作為分析的窗口。
案例分析
案例使用的示例表
下面的查詢中會用到一張表,sales_monthly表中存儲了商品銷量信息,product表示產品名稱,ym表示年月,amount表示銷售金額(元)。
以下是該表中的部分數據:

這個表的初始化腳本可以在文章底部獲取。
1.環比分析
環比增長指的是本期數據與上期數據相比的增長,例如,產品2019年6月的銷售額與2019年5月的銷售額相比增加的部分。
以下語句統計了各種產品每個月的環比增長率:
SELECT s.product AS “產品”, s.ym AS “年月”, s.amount AS “銷售額”,
(
(s.amount – LAG(s.amount,1) OVER (PARTITION BY product ORDER BY s.ym))/
LAG(s.amount,1) OVER (PARTITION BY product ORDER BY s.ym)
) * 100 AS “環比增長率(%)”
FROM sales_monthly s
ORDER BY s.product,s.ym
標簽MSSQL,SQLServer,技術文檔,數據庫,SQLSERVER
網友評論