如何在over函数中使用分区和顺序?

时间:2012-09-22 06:29:47

标签: sql sql-server-2008

我正在使用SQL Server 2008 R2。

我正在尝试编写一个显示以下内容的查询:

select productname, unitprice,categoryid, sum(unitprice) 
over (partition by categoryid order by unitprice desc) As PriceSum
from Products

我希望结果按单价订购产品,同时按产品类别划分产品。我收到此错误:Incorrect syntax near 'order'. 我做错了什么?

1 个答案:

答案 0 :(得分:9)

你没有做错什么。 SQL Server 2008不支持使用窗口函数运行聚合。

SQL Server 2012最终完全支持窗口函数,包括运行聚合。所以如果你真的需要这个,你需要升级。

请参阅SQL Server 2012的SQLFiddle:http://sqlfiddle.com/#!6/5303f/1