Pb Fonction analytique last_value
en 9i:
J'ai un problème de compréhension du LAST_VALUE. Il me semblait que c'était la dernière valeur de la partition. Le FIRST_VALUE étant la première.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| WITH t AS ( SELECT 1 AS a, 1 AS b FROM dual
UNION ALL SELECT 1, 2 FROM dual
UNION ALL SELECT 1, 3 FROM dual)
SELECT 'FIRST', a, b,
first_value(b) OVER (PARTITION BY a ORDER BY b) AS B_ASC,
first_value(b) OVER (PARTITION BY a ORDER BY b DESC) AS b_desc
FROM t
UNION ALL
SELECT 'LAST', a, b,
last_value(b) OVER (PARTITION BY a ORDER BY b),
last_value(b) OVER (PARTITION BY a ORDER BY b DESC)
FROM t
'FIRST' A B B_ASC B_DESC
FIRST 1 1 1 3
FIRST 1 2 1 3
FIRST 1 3 1 3
LAST 1 1 1 1
LAST 1 2 2 2
LAST 1 3 3 3 |
Pour le LAST je suis obligé de mettre une clause de RANGE. Ce qui n'est pas top.