PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 13/03/2011 13:25:46

pobsteta
Membre

fonction window pour calcul d'une différence

Bonjour,

J'ai des dispositifs numéroté de 1 à 20, sur chaque dispositif j'ai 10 placettes numérotées de 1 à 10, sur chaque placette j'ai des arbres numérotés de 1 à 15. Je mesure le diamètre de chaque arbre par cycle. Je désire calculer la différence de diamètre entre chaque mesure en utilisant les fonctions window et lag mais cela ne me renvoie pas le bon calcul ?

dispo  cycle  placette  arbre  diametre
1         1        1             1         48.5
1         2        1             1         50
1         3        1             1         52
1         4        1             1         53
1         1        2             1         39
1         2        2             1         40
1         3        2             1         41

ma requête :
diametre - lag(diametre,1) over (partition by dispo, placette, arbres) AS diff


Homo homini lupus

Hors ligne

#2 13/03/2011 19:18:21

Marc Cousin
Membre

Re : fonction window pour calcul d'une différence

Je pense qu'il manque une clause ORDER BY diametre dans la définition du OVER.

Mais sans exemple du résultat actuel et de ce que vous souhaitez, je ne peux pas en être sûr.


Marc.

Hors ligne

#3 13/03/2011 20:07:46

pobsteta
Membre

Re : fonction window pour calcul d'une différence

Bonjour,

Il manquait effectivement un order by :

diametre - lag(diametre,1) OVER (PARTITION BY dispo, placette, arbres ORDER BY dispo, placette, arbres, cycle ASC)

@+


Homo homini lupus

Hors ligne

Pied de page des forums