2012-09-22 46 views
5

我正在使用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'. 我做錯了什麼?

回答

9

你什麼都沒做錯。 SQL Server 2008不支持使用窗口函數運行聚合。

SQL Server 2012終於完全支持窗口化功能,包括運行聚合。所以如果你真的需要這個,你需要升級。

查看此SQLFiddle for SQL Server 2012:http://sqlfiddle.com/#!6/5303f/1