0

大家好 :) 我想根据其他列的特定顺序在一个列中选择一些值,并为下一列使用不同的顺序。

我目前正在使用它,但它不能满足我的意图:

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_BORDER BY并且顺序保持不变:/

另外,我正在使用LAST_VALUE,但我只想根据ORDER BY. 也许LAST会更好,但我不知道它如何适合这里。

4

2 回答 2

0

不确定您在寻找什么,但听起来您是对的并且需要 LAST 功能:

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
于 2013-06-04T11:42:45.753 回答
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
于 2013-08-13T15:37:55.227 回答