我有一个表格,我正在尝试使用日期子句获取选择结果。按列分组,计算另一列的总和,然后计算与分组列关联的计数的百分比。
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%
事先得到任何帮助。不知道我可以在哪里制作一张桌子,所以我为格式化道歉。
答案 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
P.S。感谢Used_By_Already提供新的详细信息。