actualmente estoy usando la siguiente consulta para obtener algunos números:Cálculo del promedio ponderado en MySQL?
SELECT gid, count(gid), (SELECT cou FROM size WHERE gid = infor.gid)
FROM infor
WHERE id==4325
GROUP BY gid;
La salida que estoy recibiendo en mi etapa actual es la siguiente:
+----------+-----------------+---------------------------------------------------------------+
| gid | count(gid) | (SELECT gid FROM size WHERE gid=infor.gid) |
+----------+-----------------+---------------------------------------------------------------+
| 19 | 1 | 19 |
| 27 | 4 | 27 |
| 556 | 1 | 556 |
+----------+-----------------+---------------------------------------------------------------+
Estoy tratando de calcular el es decir, la media ponderada
(1 * 19 + 4 * 27 + 1 * 556)/(19 + 27 + 556)
¿Hay alguna manera de hacerlo con una sola consulta?
Impresionante ... Muchas gracias por esto. Estaba a punto de escribir un bucle anidado dentro de un procedimiento, pero luego encontré un artículo que decía: "Si necesitas un bucle anidado, entonces no miraste un JOIN" :) – Legend
@legend: El consejo es correcto, pero JOINs también riesgo de inflar registros si hay más de un niño asociado con el padre. Si desea filas distintas del padre, es mejor usar una subconsulta (EXISTS sería mi recomendación). –
Ya veo. En mi caso, hay exactamente un elemento, pero tendré en cuenta tus consejos. – Legend