我有以下虚拟列是通过排序分区上的聚合生成的,
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
值小于或等于当前行中的值的值。