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 :

Fonction AVG() avec un champ TIME


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 24
    Points : 13
    Points
    13
    Par défaut Fonction AVG() avec un champ TIME
    Bonjour,

    Je cherche à faire une moyenne d'un champ TIME, ma requête fonctionne bien sauf que le résultat escompté n'est pas le bon :

    Requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Job_idJob, SUBSTR(Debut,1,7), AVG(Temp)
    FROM `dureejob`
    GROUP BY SUBSTR(DEBUT,1,7), job_idjob
    Résultat :

    Job_idJob SUBSTR(Debut,1,7) AVG(Temp)

    60 2009-07 11

    61 2009-07 3

    62 2009-07 1

    Résultat désiré :

    Job_idJob SUBSTR(Debut,1,7) AVG(Temp)

    60 2009-07 00:00:11

    61 2009-07 00:00:03

    62 2009-07 00:00:01
    Le format du TIME n'est pas gardé et affiche XXXXXX ce qui devrait être présenté sous la forme XX:XX:XX.
    Après de multiples recherches, je n'ai pas trouver d'arguments à la fonction AVG qui puissent permettre de préciser le format désiré. Seule piste que j'ai pu trouver c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    to_char(temp,’HH24:MI :SS’)
    Cependant je ne vois pas trop comment m'en servir dans ce cas !

    Merci d'avance pour vos réponses.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 811
    Points
    17 811
    Par défaut
    Vous pouvez utiliser cast.
    Votre SGBD a l'air d'être Oracle, si oui quelle version ?

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Oups, je n'ai pas précisé le SGBD,

    Mysql 5.0.

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Pour ceux que ca interesse la requête doit être formuler de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT job_idjob AS IdJob, EXTRACT(WEEK FROM Debut) AS Semaine, cast(AVG(Temp) AS time) AS TempsMoyen
    FROM Dureejob
    GROUP BY job_idjob, EXTRACT(WEEK FROM Debut)

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

Discussions similaires

  1. Moyennes avec fonction avg
    Par bati_taf dans le forum QlikView
    Réponses: 5
    Dernier message: 27/10/2013, 10h42
  2. Réponses: 1
    Dernier message: 19/02/2013, 16h17
  3. Réponses: 2
    Dernier message: 11/05/2009, 20h04
  4. Problème avec la fonction AVG
    Par cirtey dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 02/05/2007, 14h03
  5. [MySQL 5 + Java] Problème avec un champ TIME
    Par ultracoxy dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 08/07/2006, 10h25

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