我有下表,表示一个教导小组学生的导师。每个学生都有一个进入数据库的入口。学生可以是单独的或在一个组中。我希望计算导师的“工资”,因为支付是以花费的时间为基础的 - 这意味着每次坐着(与一个或多个学生一起)只计算一次坐位 - 不同的坐位!开始和结束时间是unix时间。使用mysql根据不同的坐位来计算导师的工资
<pre>
start end attendance
1359882000 1359882090 1
1359867600 1359867690 0
1359867600 1359867690 1
1359867600 1359867690 0
1360472400 1360477800 1
1360472400 1360477800 1
1359867600 1359867690 1
1359914400 1359919800 1
1360000800 1360006200 1
1360000800 1360006200 0
1360000800 1360006200 1
</pre>
这是我的尝试:没有成功 - 我不能得到正确的时间(小时数为所有不同开庭)
SELECT YEAR(FROM_UNIXTIME(start)) AS year, MONTHNAME(STR_TO_DATE(MONTH(FROM_UNIXTIME(start)), '%m')) AS month, COUNT(DISTINCT start) AS sittings, SUM(TRUNCATE((end-start)/3600, 1)) as duration FROM schedules GROUP BY YEAR(FROM_UNIXTIME(start)), MONTH(FROM_UNIXTIME(start))
感谢您的建议/支持!
编辑:要求的结果
Rate = 25
Year Month Sittings Duration Bounty
2013 February 2 2.2 2.2*25
2013 April 4 12.0 12.0*25
+1发布你试过的东西 – 2013-04-05 12:47:24
你也可以发布你想要的结果吗? – 2013-04-05 12:50:45
@JW刚刚添加了所需的结果。持续时间基于结束开始)/ 3600不同坐位 – dorogz 2013-04-05 13:00:44