Bonjour,

je dispose de la table suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CREATE TABLE T (
  ID NUMBER(8),
  EQT VARCHAR2(10),
  HORLOGE DATE,
  STATUT NUMBER(1));
Par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 1 xx 20/08/2015 10:00:00 1
 2 xx 20/08/2015 10:10:00 1
 3 xx 20/08/2015 10:12:00 0
 4 xx 20/08/2015 10:20:00 0
 5 xx 20/08/2015 10:24:00 1
 6 xx 20/08/2015 10:30:00 1
 7 xx 20/08/2015 10:32:00 1
 8 yy 20/08/2015 11:10:00 1
 9 yy 20/08/2015 11:20:00 1
10 yy 20/08/2015 11:30:00 1
J'ai besoin de détecter les intervalles pour lesquelles le STATUT vaut 1 sur au moins 3 lignes consécutives, pour chaque EQT.
La requête correspondante devrait renvoyer les informations suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
EQT HORLOGE DEBUT       HORLOGE FIN
xx  20/08/2015 10:24:00 20/08/2015 10:32:00
yy  20/08/2015 11:10:00 20/08/2015 11:30:00
Je pense qu'il faut utiliser les fonctions analytiques d'Oracle.
Qu'en pensez-vous ? Une idée ?
Merci d'avance.