Hello all :)我想根据其他列的特定顺序在一列中选择一些值,并对下一列使用不同的顺序。
我现在正在使用它,但它无法实现我打算做的事情:
SELECT
LAST_VALUE(FIELD_INFO_1) OVER (ORDER BY FIELD_A),
LAST_VALUE(FIELD_INFO_2) OVER (ORDER BY FIELD_B)
FROM TABLE_1
我正在翻转FIELD_B
中ORDER BY
的符号,订单保持不变:/
另外,我正在使用LAST_VALUE
,但我只想根据ORDER BY
获取最后一行。也许LAST
会更好,但我不知道它会如何适合这里。
答案 0 :(得分:0)
不确定你在寻找什么,但听起来你是对的,需要最后的功能:
SELECT
max(FIELD_INFO_1) KEEP (DENSE_RANK LAST ORDER BY FIELD_A),
max(FIELD_INFO_2) KEEP (DENSE_RANK LAST ORDER BY FIELD_B)
FROM TABLE_1
答案 1 :(得分:0)
这更像是一个分区问题,我最终使用了:
SELECT
LAST_VALUE(FIELD_INFO_1) OVER (
ORDER BY FIELD_A RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
),
LAST_VALUE(FIELD_INFO_2) OVER (
ORDER BY FIELD_B RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
)
FROM TABLE_1