J'essaye de construire une requête telle que certaines colonnes soient construites à partir d'une ligne précédente. Par exemple avec les données suivantes:Oracle SQL Query (Analytics?)
CREATE TABLE TEST (SEQ NUMBER, LVL NUMBER, DESCR VARCHAR2(10));
INSERT INTO TEST VALUES (1, 1, 'ONE');
INSERT INTO TEST VALUES (2, 2, 'TWO1');
INSERT INTO TEST VALUES (3, 2, 'TWO2');
INSERT INTO TEST VALUES (4, 3, 'THREE1');
INSERT INTO TEST VALUES (5, 2, 'TWO3');
INSERT INTO TEST VALUES (6, 3, 'THREE2');
COMMIT
Je souhaite récupérer les données suivantes.
SEQ L1 L2 L3
1 ONE NULL NULL
2 ONE TWO1 NULL
3 ONE TWO2 NULL
4 ONE TWO2 THREE1
5 ONE TWO3 THREE1
5 ONE TWO3 THREE2
-à-dire pour la ligne 3, il a lui-même la valeur de L2, L1 pour qu'il doit se rendre à la dernière ligne qui contient les données L1, dans ce cas, la première rangée.
J'ai essayé d'analyser l'analyse et la clause connect, mais je n'arrive pas à trouver une solution.
Des idées?
C'est vraiment gentil, exactement ce que je cherchais, je soupçonnais que cela pouvait se faire via l'analytique, merci beaucoup. Merci également à Rax et Calmar pour leur contribution. – Patrick
Oui, beaucoup beaucoup mieux, merci. Oui, j'avais deviné que vous étiez aussi un fan de Tom Kyte du style de la première réponse. – Patrick