所以说我们有3个字段,用户名,start_date,end_date
用户启动和停止多个记录,例如,在bob已启动和停止两个记录之下.
bob 1/2/13 11:00 1/2/13 13:00 jack 1/2/13 15:00 1/2/13 18:00 bob 2/2/13 14:00 1/2/13 19:00
我需要知道每个用户所花费的平均时间(即开始和结束之间的差异),以小时为单位(即按用户分组,而不仅仅是每行).
我不能完全理解如何做差异,平均AND组?有帮助吗?
解决方法
您没有为diff指定所需的粒度.这可以在几天内完成:
select username,avg(end_date - start_date) as avg_days from mytable group by username
如果您想要以秒为单位的差异,请使用datediff()
:
select username,avg(datediff(ss,end_date)) as avg_seconds ...
datediff可以通过改变第一个参数(可以是ss,mi,hh,dd,wk,mm或yy)在任何时间单位中测量差异达数年.