开始使用免费开始使用

探究窗口框架

除了 PARTITION BYORDER BY 子句,窗口函数还可以包含框架,用于告诉数据库引擎哪些内容被视为窗口的相关范围。

这里我们将查看四种不同的框架,理解结果会有何不同。对于每个示例,请为下列查询补全窗口框架:

SELECT
    ir.IncidentDate,
    ir.IncidentTypeID,
    SUM(ir.NumberOfIncidents) OVER (
        PARTITION BY ir.IncidentTypeID
        ORDER BY ir.IncidentDate
        << WINDOW FRAME >>
    ) AS NumberOfIncidents
FROM dbo.IncidentRollup ir;    

我们将根据是要包含单独的行还是一个取值范围来指定 ROWSRANGE。我们将指定 "preceding" 子句,指明当前行之前要包含多少行(或哪个取值范围)。我们还将指定 "following" 子句,指明要包含从当前行向前(时间上向后)扩展的范围。

本练习是课程的一部分

SQL Server 中的时间序列分析

查看课程

动手互动练习

通过我们的互动练习之一,将理论转化为实践

开始练习