在select的msql – velocity中计算公式
你能帮我算一个速度,通过select我的SQL:速度根据这个:
我的数据库看起来如下:
MySQLselect如下所示:
$sql = "SELECT SUM(value) FROM project_has_tasks WHERE project_id='10' GROUP BY milestone_id ASC"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "" . $row["SUM(value)"]. ","; } } $conn->close();
project_id = '10'的结果如下所示:
50,20,15
好。 这很简单,但有没有可能使用上面的速度公式在MySQLselect或somwhere其他(PHP?)所以结果采取公式:
应该看起来像这样:
50,35,28.3
任何帮助?
由于MySQL不支持CTE,你可以分两步build立一个查询。 首先,获取每个milestone
的values
的总和,查询就像您已经写过的那个
SELECT milestone_id, SUM(value) FROM project_has_tasks WHERE project_id='10' GROUP BY milestone_id
然后你自己join上面的查询
select t1.milestone_id, sum(t2.val) / count(t2.val) from ( SELECT milestone_id, SUM(value) val FROM project_has_tasks WHERE project_id='10' GROUP BY milestone_id ) t1 join ( SELECT milestone_id, SUM(value) val FROM project_has_tasks WHERE project_id='10' GROUP BY milestone_id ) t2 on t1.milestone_id <= t2.milestone_id group by t1.milestone_id order by t1.milestone_id desc
你可以在这里看到它的行动