Bonjour à tous,
Quelqu'un peut-il me dire s'il existe une technique sous postgres équivalent aux fonctions LAG et LEAD d'Oracle, à savoir récupérer les valeurs des lignes précédentes et suivantes d'un select ?
Merci de votre aide.
Version imprimable
Bonjour à tous,
Quelqu'un peut-il me dire s'il existe une technique sous postgres équivalent aux fonctions LAG et LEAD d'Oracle, à savoir récupérer les valeurs des lignes précédentes et suivantes d'un select ?
Merci de votre aide.
En fait ma réponse ne sera pas plus mal dans le forum PostgreSQL :)
http://www.developpez.net/forums/sho...=584065&page=2
Si tu ne veux pas attendre la 8.4, ce que je comprends, tu peux le simuler avec du SQL classique, mais ça risque d'être beaucoup moins performant s'il y a beaucoup de données, s'il y en a peu ça devrait aller* :
J'ai repris le contexte de l'autre thread PL/SQL, c'est à dire que Pointage ne contient les données que d'une seule journée, sinon il faut modifier "WHERE POIN2.heure > POIN.heure" pour tenir compte des jours. Idem pour l'activité : la requête ne concerne qu'une activité, comme dans l'autre thread.Code:
1
2
3
4
5
6
7
8
9 SELECT TO_CHAR(POIN.jour,'YYYYMMDD') AS CJour, POIN.heure AS CHeureDeb, COALESCE((SELECT MIN(POIN2.heure) FROM Public.Pointage POIN2 WHERE POIN2.heure > POIN.heure), POIN.Heure) AS CHeureFin FROM Public.Pointage POIN; "20080715";"070000";"110000" "20080715";"110000";"140000" "20080715";"140000";"170000" "20080715";"170000";"170000"
*En tout cas, un index sur la colonne "heure" aiderait certainement ici :).