2014-07-21 3 views
0

가 나는 탄수화물누적 평균 MySQL의 PHP

의 누적 평균을 얻으려면 이제 테이블 이름 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

+1

내가 생각 [이 링크] (http://stackoverflow.com/questions/911326/sql-select-statement-for-calculating-a-running-average-column) 당신을 도울 것입니다 –

+0

당신의 친구는 정규화입니다. – Strawberry

답변

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

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