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.
Pour le LAST je suis obligé de mettre une clause de RANGE. Ce qui n'est pas top.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager