累积平均mysql php

时间:2014-07-21 09:40:12

标签: php mysql

我有一个表名meal

id name carbs protein fat

1  one   10    30      18   
2  one   17    4        2
3  one   27    6        7

现在我想得到碳水化合物的累积平均值

我的查询是

SELECT (100*(sum(m.carbs)/(sum(m.carbs)+sum(m.fat)+sum(m.protein))))AS Percantage_carbs FROM `meal` AS m

我的查询结果为52.2580645

但我会

52.8848076

2 个答案:

答案 0 :(得分:1)

您的查询将导致44.628099173554绝对正确。

Total: 10+30+18+17+4+2+27+6+7 = 121
Carbs Only: 10+17+27 = 54

(54 / 121) * 100 = 44,63%

SQL小提琴:http://sqlfiddle.com/#!2/3d6e5/3

答案 1 :(得分:0)

给出的数据和您正在使用的查询的结果是:44,628099174

我猜你的查询应该是这样的(你错过了小组):

SELECT (
      100 *
      (sum(m.carbs)
      /
      (sum(m.carbs)+ sum(m.fat)+ sum(m.protein)))
    ) AS Percantage_carbs 
  FROM `meal` AS m
GROUP BY name