Bonjour à tous.
J'ai un souci de création de requête : j'ai une liste de point et j'ai une valeur dans la table qui alterne entre 0 et 2. Je cherche la valeur suivante avec un lead
La requête est simple,
et j'obtient un tableau de la sorte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT objectid, col_16, LEAD(col_16) OVER (ORDER BY col_01 ASC) AS next FROM test.viab_gel_4_pt;
Mon objectif et de faire un regroupement par groupe de 0 et de 2, et a chaque changement incrémenter cette valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 -------------------------- objectid | col_16 | next | -------------------------- 2 | 2 | 2 | 3 | 2 | 2 | 4 | 2 | 2 | 5 | 2 | 0 | 6 | 0 | 0 | 7 | 0 | 0 | 8 | 0 | 2 | 9 | 2 | 2 | 10 | 2 | 2 | 11 | 2 | 2 | ....
pour au final avoir un truc comme ça :
Mais alors là, le bloque... Je n'arrive pas a faire de déclaration de variable pour faire une comparaison entre col_16 et next et incrémenter id_g... pour le coup je n'y arrive pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 --------------------------------- objectid | col_16 | next | id_g | --------------------------------- 2 | 2 | 2 | 1 | 3 | 2 | 2 | 1 | 4 | 2 | 2 | 1 | 5 | 2 | 0 | 1 | 6 | 0 | 0 | 2 | 7 | 0 | 0 | 2 | 8 | 0 | 2 | 2 | 9 | 2 | 2 | 3 | 10 | 2 | 2 | 3 | 11 | 2 | 2 | 3 | ....
Je n'ai pas bien saisi le principe. Je dois faire du transact ? ou il y a plus simple ?
En vous remerciant
Partager