SUM sur des enregistrements consécutifs

cs_nahoulaa Messages postés 43 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 7 octobre 2015 - 24 sept. 2013 à 14:04
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 - 24 sept. 2013 à 17:21
Bonjour,
Je souhaite sommer sur une colonne z (SUM(z)) des enregistrements successifs ayant la même valeur de y.
exemple :

x y z
1 b 5
2 a 8
3 a 2
4 f 9
5 a 20

Dans cet exemple, je souhaite sommer les 2 eregistrements ayant x (= 2 et 3), possédant la même valeur de y (=a). le résultat de la somme SUM(z) sera 10
y a-t-il moyen de le faire en des requêtes sql ?
Merci ..
A voir également:

2 réponses

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
24 sept. 2013 à 16:49
Bonjour,

Si tes données sont réparties dans plusieurs colonnes :
Colonne X les valeurs
Colonne Y les critères
Tu peux Utiliser facilement : SUM et de Group By

http://sql.sh/fonctions/agregation/sum

http://www.w3resource.com/sql/aggregate-functions/sum-with-group-by.php

Si tes XYZ sont contenus dans une unique colonne..ça risque de compliquer un peu les choses...
0
cs_nahoulaa Messages postés 43 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 7 octobre 2015
24 sept. 2013 à 17:10
mes données sont bien réparties sur les 3 colonnes x, y et z
mais mon problème est de faire la somme sur des valeurs succéssifs de x (xi, xi+1, xi+2, ...)
je vois pas comment préciser le group by !!
merci
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
24 sept. 2013 à 17:15
je souhaite sommer les 2 eregistrements ayant x (= 2 et 3), possédant la même valeur de y (=a)
Ah oui.. je n'avais pas vu que tu avais un troisième "a"....
Je pensais que tu voulais faire la somme de tous ceux qui avaient le même critère "Y"...
Mais si tu ne souhaites prendre que ceux qui sont à la suite dans ta table... dans ce cas là.. je ne vois pas comment faire... pas sur que tu puisse directement avec une requête.
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
24 sept. 2013 à 17:21
Si l'ordre dans ta table a une importance, tu dois surement avoir une autre colonne disposant d'une information comme une date par exemple ou un ID auto-incrémenté .. non ?
Si oui, il sera surement possible de jouer avec les Order By puis le Group By... a voir...
0
Rejoignez-nous