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 : 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
Pour le LAST je suis obligé de mettre une clause de RANGE. Ce qui n'est pas top.