SQL基础:SQL窗口函数之取值窗口函数的使用
时间:2024-02-05 12:47作者:下载吧人气:21
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
网友评论