Tengo la siguiente columna virtual generada a partir de un agregado sobre una partición ordenada,
MIN(picture_id) OVER ( PARTITION BY [360_set] ORDER BY picture_id ASC )
Sin embargo, cuando ejecuto eso, obtengo lo siguiente.
Msg 11305, Level 15, State 10, Line 12
The Parallel Data Warehouse (PDW) features are not enabled.
Sin embargo, aquí es donde se pone interesante, sin un orden de clasificación en la partición, funciona:
MIN(picture_id) OVER ( PARTITION BY [360_set] )
Y, además, ROW_NUMBER()
una función de ventana (no una función agregada) funciona con un orden explícito en la partición.
ROW_NUMBER() OVER ( PARTITION BY [360_set] ORDER BY picture_id ASC )
¿Cómo es que la declaración deseada no funciona? ¿Dónde se documenta esto? Se solicitó la información de la versión, esto es lo que hice en Ayuda → Acerca de.
Microsoft SQL Server Management Studio 10.0.5512.0
Microsoft Analysis Services Client Tools 10.0.5500.0
Microsoft Data Access Components (MDAC) 6.1.7601.17514
Microsoft MSXML 3.0 6.0
Microsoft Internet Explorer 9.10.9200.16635
Microsoft .NET Framework 2.0.50727.5472
Operating System 6.1.7601
El resultado de SELECT @@VERSION
esMicrosoft SQL Server 2008 (SP3) - 10.0.5512.0 (X64) Aug 22 2012 19:25:47 Copyright (c) 1988-2008 Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (VM)
[360_set]
o esa parte es irrelevante? Además, según su comentario, la fórmula que proporcionó solo funciona como la descripción del texto si no hay espacios en la secuencia. ¿Cuál quieres?
MIN
supuesto, no afecta la forma en que funciona, pero sí cambia las filas en el marco sobre el que MIN
se realiza.
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
. Por lo tanto, la ventana solo incluye valores con picture_id
valores menores o iguales a los de la fila actual.