Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'addition de d'éléments de colonne

Mysql

Sujet résolu
    24 avril 2011 à 16:16:43

    Bonjour à tous !
    J'ai un petit problème concernant une requête (sous Mysql).
    J'aimerai que ma colonne "duree" additionne tous les temps enregistrés par id.

    Voici ma table complète :
    idInc  	id      duree
    1 	1 	00:07:06		
    2 	2       00:07:23
    3 	3       00:07:17
    4 	4 	00:07:09
    5 	5 	00:07:02
    6 	1 	00:00:51
    


    Type de la colonne duree : TIME

    En gros voici ma requête :
    SELECT id, duree FROM tableTest GROUP BY id
    

    qui me retourne :
    id       	duree
    1 	        00:07:06
    2               00:07:23
    3 	        00:07:17
    4 	        00:07:09
    5 	        00:07:02
    

    Il me regroupe donc correctement les id mais ne m'addtionne pas les durées...
    Il devrait additionner les durées correspondant à l'id 1 soit :(00:07:06+00:00:51)
    Savez-vous d'où cela peut venir ?

    Merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
      24 avril 2011 à 16:56:09

      Citation : Paradïze

      Il devrait additionner les durées correspondant à l'id 1 soit :(00:07:06+00:00:51)


      Ben non pas si tu lui précises pas.
      D'ailleurs le fait que tu aies des résultats sur une telle requête vient peut-être uniquement de MySQL puisque tu peux avoir plusieurs durée pour deux "id".
      'fin bref il te faut une fonction d'agrégat, et en l'occurrence c'est SUM (ben oui la somme..!)
      • Partager sur Facebook
      • Partager sur Twitter
      Ce n'est pas parce que vous ne savez pas vous servir d'un marteau qu'il faut planter des clous au tournevis.
        24 avril 2011 à 17:03:11

        hélas non, j'ai déjà essayé de passer par SUM(), qui m'additionne bêtement mes deux durées comme des entiers. Exemple : duree1 = 00:05:55
        duree2 = 00:06:57. En faisant un SUM() de ces deux durées j'obtiens le résultat suivant : 555 + 657 = 1212 :/
        • Partager sur Facebook
        • Partager sur Twitter
          24 avril 2011 à 17:07:53

          ...J'en déduis que duree n'est pas de type TIME ?
          Ce serait dommage quand même !
          • Partager sur Facebook
          • Partager sur Twitter
          Ce n'est pas parce que vous ne savez pas vous servir d'un marteau qu'il faut planter des clous au tournevis.
            24 avril 2011 à 17:11:11

            Biensûr qu'il l'est. Et voici ma requête :
            SELECT id, SUM(duree) from tableTest group by id;
            • Partager sur Facebook
            • Partager sur Twitter
              24 avril 2011 à 17:18:07

              Ah bah oui j'étais parti du fait que MySQL gérait SUM pour le type TIME =/
              Quelques solutions ici : http://stackoverflow.com/questions/132 [...] -to-sum-times

              Bon alors
              SELECT id,SEC_TO_TIME(SUM(TIME_TO_SEC(duree))) FROM tableTest group by id
              

              devrait marcher.
              • Partager sur Facebook
              • Partager sur Twitter
              Ce n'est pas parce que vous ne savez pas vous servir d'un marteau qu'il faut planter des clous au tournevis.
                24 avril 2011 à 17:26:29

                Ca fonctionne niquel ! ;) Merci beaucoup, sujet résolu
                • Partager sur Facebook
                • Partager sur Twitter
                  24 avril 2011 à 17:31:26

                  Ah bah un mec donnait la solution dans le suivi du bug... reporté en 2008.
                  Donc je crois que c'est mort pour voir une implémentation "naturelle" de SUM.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Ce n'est pas parce que vous ne savez pas vous servir d'un marteau qu'il faut planter des clous au tournevis.

                  Problème d'addition de d'éléments de colonne

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown