sql server 学习中遇到的order by 关键词语法问题

背景
晚上看sql 基础教程的时候看到的示例,在电脑上写出后一直报错

select product_id,product_name,sale_price,
        sum(sale_price) over(partition by product_type order by product_price) as current_sum
    from product;

select product_id,product_name,sale_price,
        avg(sale_price) over(order by product_id) as current_avg
    from product;
运行结果及报错内容

消息 102,级别 15,状态 1,第 2 行
'order' 附近有语法错误。
两个语句的报错内容都已order 处有语法错误,但是不懂是怎么回事。希望可以得到解答。

你这个错误是必然的,因为COUNT(),SUM(),AVG(),MAX(MIN()都属于聚合函数,聚合开窗函数只能使用PARTITION BY子句或都不带任何语句,ORDER BY不能与聚合开窗函数一同使用。  
语法结构: 聚合函数( ) OVER ( [ <partition_by子句> ] )

所以你用了order by就错了,更多内容你可以参考这篇文章,希望对你有帮助

MSSQL 的OVER()函数的使用方法,可以参考:
https://blog.csdn.net/yangb0803/article/details/47021463

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632