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.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 .
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager