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

Langage SQL Discussion :

Calculer la vitesse moyenne et trier sur celle-ci


Sujet :

Langage SQL

  1. #1
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 375
    Points : 9 710
    Points
    9 710
    Par défaut Calculer la vitesse moyenne et trier sur celle-ci
    Bonjour,

    J'ai une table regroupant, pour chaque personne, les différentes performances sur des parcours.
    Dans la table, je stock l'id des personnes, l'id de la "saison" (une unité de période ex "hiver 2019"), la distance parcourue et le temps pour parcourir la distance.
    Chaque personne peut effectuer plusieurs parcours dans la même saison.

    J'aimerai obtenir la vitesse moyenne de chaque personne pour une saison donnée, triée sur la vitesse.

    La vitesse étant le résultat de la somme des distances parcourues divisée par la somme des temps mis.

    Pour le moment, j'ai fais cette requete :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT prs_id, SUM(par_dist) as Distance, SUM (pas_temps) as Temps 
    FROM T_Parcours
    WHERE sai_id={param_Saison}
    GROUP BY prs_id

    Ensuite, je parcours le résultat, calcule les vitesses, effectue le tri et affiche le résultat.

    Je me demandais s'il n'y avait pas un moyen d'obtenir directement la vitesse et le tri depuis une requête SQL.

    D'avance merci pour vos idées.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Il suffit d'appliquer les règles telles que tu les as énoncées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT  prs_id
        ,   SUM(par_dist)   as Distance
        ,   SUM (pas_temps) as Temps
        ,   SUM(par_dist) / SUM (pas_temps) as Vitesse
    FROM    T_Parcours
    WHERE   sai_id  = {param_Saison}
    GROUP BY prs_id
    ORDER BY Vitesse
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 375
    Points : 9 710
    Points
    9 710
    Par défaut
    Ben oui ! Evident ! Quel @$*& je fais !

    Merci !

    JS

    PS : Juste un point, si pour une raison X ou Y Sum(pas_temps) était égal à zéro, ça ferait quoi ?
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Citation Envoyé par Jon Shannow Voir le message
    si pour une raison X ou Y Sum(pas_temps) était égal à zéro, ça ferait quoi ?
    Une division par zéro... et une erreur d'exécution de la requête.

    Avec cette expression, tu obtiens un null :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ,   case SUM (pas_temps) when 0 then null else SUM(par_dist) / SUM (pas_temps) end as Vitesse
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 375
    Points : 9 710
    Points
    9 710
    Par défaut
    OK, merci beaucoup.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    bonjour,

    Ou plus simple, pour éviter la division par zéro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ,   SUM(par_dist) / NULLIF(SUM(pas_temps),0) as Vitesse

  7. #7
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 375
    Points : 9 710
    Points
    9 710
    Par défaut
    En effet, excellente idée.

    Merci

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

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

Discussions similaires

  1. Calcul de vitesse moyenne entre deux images
    Par skon5 dans le forum Traitement d'images
    Réponses: 5
    Dernier message: 01/03/2018, 13h23
  2. Réponses: 4
    Dernier message: 07/05/2008, 10h53
  3. Calcul de moyenne et ecarttype sur requete!
    Par Vascogil dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 26/06/2007, 16h25
  4. trier sur le résultat d'un calcul dans l'état
    Par crissud dans le forum IHM
    Réponses: 21
    Dernier message: 16/03/2007, 07h04
  5. Réponses: 35
    Dernier message: 10/05/2006, 01h11

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