mysql查询没有返回正确的百分比

时间:2015-09-02 00:11:52

标签: php mysql

我有一个表格,我正在尝试使用日期子句获取选择结果。按列分组,计算另一列的总和,然后计算与分组列关联的计数的百分比。

ID |延迟型| Delayhours | Delaydate

1 | type1 | 2 | 2015年1月10日

2 | type2 | 3 | 2015年1月10日

3 | type2 | 1 | 2015年2月10日

4 | type2 | 1 | 2015年1月10日

所以对Jan的月份的查询应该给我: 1型= 33.3% 类型2 = 66.6%

到目前为止,我的查询是:

$result = mysqli_query($con, "SELECT Delaytype, SUM(`Delayhours`) / (SELECT Sum(Delayhours)) 
        * 100 as cnt FROM delays  WHERE YEAR(Delaydate) = '".$yearly."' AND MONTH(Delaydate) = '".$month."' GROUP BY Delaytype; ");

但是我得到的每个Delaytype的结果都是100%

事先得到任何帮助。

不知道我可以在哪里制作一张桌子,所以我为格式化道歉。

1 个答案:

答案 0 :(得分:1)

SELECT 
    DelayType,
    SUM(Delayhours) AS Delaytotal,
    ROUND(
        100*(
          SUM(Delayhours) / 
          (
              SELECT SUM(Delayhours) 
              FROM dummy 
              WHERE 
                  Delaydate >= '2015-01-01' AND
                  Delaydate < '2015-02-01'
          )
        ), 
        2
    ) AS Delaypercents
FROM dummy
WHERE 
    Delaydate >= '2015-01-01' AND 
    Delaydate < '2015-02-01'
GROUP BY Delaytype

And catch the fiddle :)

P.S。感谢Used_By_Already提供新的详细信息。