3
这想出回答其他用户的question(TheSoftwareJedi)当...甲骨文分析 - 分区和SQL的排序查询
假设表格如下:
ROW_PRIORITY COL1 COL2 COL3
0 0.1 100 <NULL>
12 <NULL> <NULL> 3
24 0.2 <NULL> <NULL>
和下面的查询:
select 'B' METRIC, ROW_PRIORITY,
last_value(col1 ignore nulls) over (ORDER BY ROW_PRIORITY) col1,
last_value(col2 ignore nulls) over (ORDER BY ROW_PRIORITY) col2,
last_value(col3 ignore nulls) over (ORDER BY ROW_PRIORITY) col3
from (SELECT * FROM ZTEST);
我得到这些结果:
METRIC ROW_PRIORITY COL1 COL2 COL3
B 0 0.1 100 <NULL>
B 12 0.1 100 3
B 24 0.2 100 3
预期:
METRIC ROW_PRIORITY COL1 COL2 COL3
B 0 0.2 100 3
B 12 0.2 100 3
B 24 0.2 100 3
问题是当然的,为什么我没有拿到0.2的col1中的每一行的优先级,等等? LAST_VALUE应该首先执行ORDER BY,然后从分区中选择最后一个值。在上面的查询的情况下,分区是整个记录集,所以我会看到我上面的预期结果。
任何人都可以解释吗?
我想这不会对我的意义,这是不是默认的行为。 – ScottCher 2008-11-04 17:00:05