背景
晚上看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