假设我们有3个领域, username, start_date, end_date
username, 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
我需要知道每个用户(即按用户分组,而不仅是每一行)的平均时间(即开始和结束之间的时间差),以小时为单位。
我不太了解如何进行差异,平均和分组?有什么帮助吗?
您没有为差异指定所需的粒度。这可以在几天内完成:
select username, avg(end_date - start_date) as avg_days from mytable group by username
如果要以秒为单位,请使用datediff():
datediff()
select username, avg(datediff(ss, start_date, end_date)) as avg_seconds ...
datediff可以通过更改第一个参数(ss,mi,hh,dd,wk,mm或yy)以任何时间单位测量长达数年的差异。