SQL中窗口函数中的FOLLOWING关键字

    科技2024-03-25  13

    背景

    学习MySQL数据库参考书 -微信读书软件中的《SQL基础教程》第二版书中第八章第一节

    问题

    首先是使用PRECEDING关键字,由于MySQL8已经支持了窗口函数,SQL语句没有任何问题 -- 计算移动平均 -- 指定最靠近的三行作为汇总对象 SELECT product_name, product_type, sale_price, AVG(sale_price) OVER (ORDER BY product_id ROWS 2 PRECEDING) AS moving_avg_preceding FROM Product; 执行结果(书中图片,执行效果相同) 书中说使用关键字FOLLOWING替换PRECEDING,就可以指定“截止到_行之后”作为框架了 SELECT product_name, product_type, sale_price, AVG(sale_price) OVER (ORDER BY product_id ROWS 2 FOLLOWING) AS moving_avg_following FROM Product; 执行结果报错,书中也没有示例代码,网上搜了一堆东西,也是一笔带过,为什么不能正视问题的存在呢? 能力有限,只想到一个替代的办法 -- 将当前记录的前后行作为汇总对象 -- 将前设置为0,后设置为2 -- 结果包含自己和后两行的记录 SELECT product_id, product_name, sale_price, AVG(sale_price) OVER (ORDER BY product_id ROWS BETWEEN 0 PRECEDING AND 2 FOLLOWING ) AS moving_avg FROM Product; 执行结果 求大佬解释一下
    Processed: 0.012, SQL: 9