J'ai la colonne virtuelle suivante générée à partir d'un agrégat sur une partition triée,
MIN(picture_id) OVER ( PARTITION BY [360_set] ORDER BY picture_id ASC )
Cependant, lorsque j'exécute cela, j'obtiens ce qui suit.
Msg 11305, Level 15, State 10, Line 12
The Parallel Data Warehouse (PDW) features are not enabled.
C'est là que cela devient intéressant, sans ordre de tri sur la partition, cela fonctionne:
MIN(picture_id) OVER ( PARTITION BY [360_set] )
Et, en outre, ROW_NUMBER()
une fonction de fenêtre (pas une fonction d'agrégation) fonctionne avec un ordre explicite sur la partition.
ROW_NUMBER() OVER ( PARTITION BY [360_set] ORDER BY picture_id ASC )
Comment se fait-il que l'énoncé souhaité ne fonctionne pas? Où est-ce documenté? Les informations de version ont été demandées, c'est ce que je trouve dans Aide → À propos.
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
Le résultat de SELECT @@VERSION
estMicrosoft 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]
, ou cette partie n'est-elle pas pertinente? De plus, d'après votre commentaire, la formule que vous avez donnée ne fonctionne que comme la description du texte s'il n'y a pas de lacunes dans la séquence. Lequel veux-tu?
MIN
fonctionnement, bien sûr, mais cela modifie les lignes du cadre sur lesquelles MIN
est effectué.
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
. Ainsi, la fenêtre inclut uniquement des valeurs dont les picture_id
valeurs sont inférieures ou égales à celles de la ligne actuelle.