IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes PostgreSQL Discussion :

Calcul distance et temps : lire enregistrement précédent


Sujet :

Requêtes PostgreSQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Calcul distance et temps : lire enregistrement précédent
    Bonjour,

    Mon problème est extrêmement simple à résoudre dans un tableur, mais je n'y arrives pas avec Postgres.

    J'ai fait des enregistrements de traces avec un GPS avec des points réguliers pour lesquels je dispose des coordonnées X et Y ainsi que de l'heure de l'enregistrement.

    Pour chaque point P j'ai besoin de connaitre les coordonnées X, Y et l'heure du point P-1 pour calculer la vitesse.

    J'ai cherché du côté des curseurs et fetch mais je ne sais pas somment m'y prendre. est ce la bonne piste ? y a t'il plus simple ?

    Une idée ?

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 133
    Points : 38 555
    Points
    38 555
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Vous pouvez utiliser la fonction LAG pour retrouver la valeur précédente ou son équivalent
    OVER(PARTITION BY xxx ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Merci pour cette réponse.
    Je n'ai pas su m'en sortir avec la fonction lag en contrepartie la fonction de fenêtrage m'a bien servi.

    voici donc ma requête de test étape par étape pour calculer ma distance parcourue entre deux points :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        SELECT x, y,
     
        x - (first_value(x) OVER (PARTITION BY 2 ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)) as delta_X,
        y - (first_value(y) OVER (PARTITION BY 2 ROWS BETWEEN 1 PRECEDING AND CURRENT ROW)) as delta_Y,
     
        power((x - (first_value(x) OVER (PARTITION BY 2 ROWS BETWEEN 1 PRECEDING AND CURRENT ROW))),2) as carre_delta_X,
        power((y - (first_value(y) OVER (PARTITION BY 2 ROWS BETWEEN 1 PRECEDING AND CURRENT ROW))),2) as carre_delta_Y,
     
        power((x - (first_value(x) OVER (PARTITION BY 2 ROWS BETWEEN 1 PRECEDING AND CURRENT ROW))),2) + power((y - (first_value(y) OVER (PARTITION BY 2 ROWS BETWEEN 1 PRECEDING AND CURRENT ROW))),2) as sum_carre_delta_Y,
     
        sqrt(power((x - (first_value(x) OVER (PARTITION BY 2 ROWS BETWEEN 1 PRECEDING AND CURRENT ROW))),2) + power((y - (first_value(y) OVER (PARTITION BY 2 ROWS BETWEEN 1 PRECEDING AND CURRENT ROW))),2)) as raci_sum_carre_delata_Y
     
        FROM test

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/04/2010, 18h36
  2. Réponses: 6
    Dernier message: 27/06/2009, 08h47
  3. [AC-2007] Calcul lié à la valeur de l'enregistrement précédent
    Par cabinfi dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 28/04/2009, 08h35
  4. lire les enregistrements précédent d'une table
    Par lt.latinus dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 07/01/2009, 14h12
  5. Petit Calcul à l'aide des enregistrements précédents
    Par laurentcr dans le forum Access
    Réponses: 5
    Dernier message: 11/09/2006, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo