Valeur incrément en fonction d'un changement de valeur
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,
Code:
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; |
et j'obtient un tableau de la sorte :
Code:
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 |
.... |
Mon objectif et de faire un regroupement par groupe de 0 et de 2, et a chaque changement incrémenter cette valeur.
pour au final avoir un truc comme ça :
Code:
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 |
.... |
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. :oops:
Je n'ai pas bien saisi le principe. Je dois faire du transact ? ou il y a plus simple ? :?
En vous remerciant