2012-09-22 15 views
5

私はSQL Server 2008 R2を使用しています。over関数でpartition byとorder byを使う方法は?

私は、次を示すクエリを記述しようとしています:

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は、実行中の集計を含むウィンドウ機能を完全にサポートしています。したがって、実際にこれが必要な場合は、アップグレードする必要があります。

SQL Server 2012のSQLFiddleを参照してください。http://sqlfiddle.com/#!6/5303f/1