我有下表表示一个导师在小组中教学生。每个学生都有一个进入数据库的条目。一个学生可以是一个人,也可以是一群人。我希望这样计算导师的“薪水”:付款是基于所花费的时间——这意味着每次坐(有一个或多个学生)只会计算一次坐——不同的坐!开始和结束时间是 unix 时间。
<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)) 作为年份, MONTHNAME(STR_TO_DATE(MONTH(FROM_UNIXTIME(start)), '%m')) 作为月份, COUNT(DISTINCT start) 作为坐席, SUM(TRUNCATE((end-start)/3600, 1)) 作为持续时间 从时间表 通过...分组 年(FROM_UNIXTIME(开始)), 月(FROM_UNIXTIME(开始))
感谢您的建议/支持!
编辑:所需的结果
Rate = 25
Year Month Sittings Duration Bounty
2013 February 2 2.2 2.2*25
2013 April 4 12.0 12.0*25