假设我们有3个字段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()
:select username, avg(datediff(ss, start_date, end_date)) as avg_seconds
...
datediff可以通过更改第一个参数(ss,mi,hh,dd,wk,mm或yy)以任何时间单位测量长达数年的差异。
关于sql - 两个日期之间的平均差异(按第三个字段分组)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14895782/