Ho la seguente colonna virtuale generata da un aggregato su una partizione ordinata,
MIN(picture_id) OVER ( PARTITION BY [360_set] ORDER BY picture_id ASC )
Tuttavia, quando lo eseguo, ottengo quanto segue.
Msg 11305, Level 15, State 10, Line 12
The Parallel Data Warehouse (PDW) features are not enabled.
È qui che diventa interessante, però, senza un ordinamento sulla partizione, funziona:
MIN(picture_id) OVER ( PARTITION BY [360_set] )
Inoltre, ROW_NUMBER()
una funzione finestra (non una funzione aggregata) funziona con un ordine esplicito sulla partizione.
ROW_NUMBER() OVER ( PARTITION BY [360_set] ORDER BY picture_id ASC )
Come mai l'affermazione desiderata non funziona? Dove è documentato? Sono state richieste le informazioni sulla versione, questo è quello che ho in Aiuto → Informazioni.
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
Il risultato SELECT @@VERSION
èMicrosoft 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 quella parte è irrilevante? Inoltre, dal tuo commento, la formula che hai dato funziona solo come la descrizione del testo se non ci sono spazi vuoti nella sequenza. Quale vuoi?
MIN
Ovviamente non influisce sul modo in cui funziona, ma cambia le righe nel frame su cui MIN
viene eseguita.
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
. Quindi la finestra include solo valori con picture_id
valori inferiori o uguali a quelli nella riga corrente.