2012-09-22 19 views
5

Estoy usando SQL Server 2008 R2.¿Cómo usar la partición by order by in over function?

estoy tratando de escribir una consulta que incluya lo siguiente:

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

Quiero el resultado de ordenar productos por su precio unitario, mientras que la partición de los productos por parte de sus categorías. Recibo este error: Incorrect syntax near 'order'. ¿Qué estoy haciendo mal?

Respuesta

9

No está haciendo nada mal. SQL Server 2008 no es compatible con la ejecución de agregados con la función de ventana.

SQL Server 2012 finalmente tiene soporte completo para funciones de ventanas, incluyendo la ejecución de agregaciones. Entonces, si realmente necesitas esto, necesitarás actualizar.

Consulte este SQLFiddle para SQL Server 2012: http://sqlfiddle.com/#!6/5303f/1