並べ替えられたパーティションの集計から生成された次の仮想列があります。
MIN(picture_id) OVER ( PARTITION BY [360_set] ORDER BY picture_id ASC )
しかし、それを実行すると、次のようになります。
Msg 11305, Level 15, State 10, Line 12
The Parallel Data Warehouse (PDW) features are not enabled.
これは興味深いところですが、パーティションに並べ替え順序がなくても機能します。
MIN(picture_id) OVER ( PARTITION BY [360_set] )
さらに、ROW_NUMBER()
ウィンドウ関数(集計関数ではない)は、パーティションで明示的な順序で動作します。
ROW_NUMBER() OVER ( PARTITION BY [360_set] ORDER BY picture_id ASC )
目的のステートメントが機能しないのはなぜですか?これはどこに文書化されていますか?バージョン情報が要求されました。これは、ヘルプ→バージョン情報にあります。
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
の結果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]
で分割することに関心がありますか、それとも関係ありませんか?また、コメントから、シーケンスにギャップがない場合、指定した式はテキストの説明と同じように機能します。どちらがいいですか?
MIN
もちろん動作には影響しませんが、MIN
実行されるフレームの行を変更します。
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
です。したがって、ウィンドウpicture_id
には現在の行の値以下の値のみが含まれます。