2012-09-22 5 views
5

Ich verwende SQL Server 2008 R2.Wie Partition von und in Reihenfolge über in Funktion verwenden?

Ich versuche, eine Abfrage zeigt folgendes zu schreiben:

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

ich das Ergebnis Produkte bestellen, indem ihr Stückpreis wollen, während die Produkte durch ihre Kategorien partitionieren. Ich erhalte diesen Fehler: Incorrect syntax near 'order'. Was mache ich falsch?

Antwort

9

Sie sind nichts falsch machen. SQL Server 2008 unterstützt das Ausführen von Aggregaten mit Fensterfunktion nicht.

SQL Server 2012 bietet endlich volle Unterstützung für Fensterfunktionen, einschließlich laufender Aggregationen. Wenn Sie das wirklich brauchen, müssen Sie upgraden.

Siehe dieses SQLFiddle für SQL Server 2012: http://sqlfiddle.com/#!6/5303f/1

Verwandte Themen