SQL 开窗函数:range和rows的区别

range基于order by的值计算,如图一,order by的值为20190101

rows基于order by排好的顺序的行计算,如图二,计算排序后的行

range可应用于订单日期

rows可应用于订单笔数

图一

注意:第一个窗口第2行金额425的时间计算范围是:20190101~20190103,共四笔订单金额的均值(不是3笔)

           第二个窗口第1行金额550的时间计算范围,理论是20190102~20190104,但该窗口下无20190102订单(虽然在第一个窗口有20190102的订单),故实际计算20190103~20190104共两笔订单金额的均值

图二

 其他参考:

SQL Server Windowing Functions: ROWS vs. RANGE – SQLpassion

原文地址:https://www.cnblogs.com/xuwinwin/p/15808693.html