J'utilise actuellement la requête suivante pour obtenir quelques chiffres:Calcul de la moyenne pondérée dans MySQL?
SELECT gid, count(gid), (SELECT cou FROM size WHERE gid = infor.gid)
FROM infor
WHERE id==4325
GROUP BY gid;
La sortie Je reçois à mon stade actuel est le suivant:
+----------+-----------------+---------------------------------------------------------------+
| gid | count(gid) | (SELECT gid FROM size WHERE gid=infor.gid) |
+----------+-----------------+---------------------------------------------------------------+
| 19 | 1 | 19 |
| 27 | 4 | 27 |
| 556 | 1 | 556 |
+----------+-----------------+---------------------------------------------------------------+
Je suis en train de calculer le-à-dire moyen pondéré
(1 * 19 + 4 * 27 + 1 * 556)/(19 + 27 + 556)
Existe-t-il un moyen de le faire en utilisant une seule requête?
Génial ... Merci beaucoup pour cela. J'étais sur le point d'écrire une boucle imbriquée dans une procédure, mais je suis tombé sur un article qui disait "Si vous avez besoin d'une boucle imbriquée, alors vous n'avez pas regardé JOIN" :) – Legend
@legend: Le conseil est correct, mais JOINs aussi risque de gonfler les dossiers s'il y a plus d'un enfant associé au parent. Si vous voulez des lignes distinctes du parent, il est préférable d'utiliser une sous-requête (EXISTS serait ma recommandation). –
Je vois. Dans mon cas, il y a exactement un élément mais je garderai votre conseil en tête. – Legend