neb*_*ebs 12 mysql datetime average
我有一个名为Sessions的表,有两个日期时间列:开始和结束.
对于每一天(YYYY-MM-DD),可以有许多不同的开始和结束时间(HH:ii:ss).我需要找到这些开始和结束时间之间所有差异的每日平均值.
几行的示例是:
start: 2010-04-10 12:30:00 end: 2010-04-10 12:30:50
start: 2010-04-10 13:20:00 end: 2010-04-10 13:21:00
start: 2010-04-10 14:10:00 end: 2010-04-10 14:15:00
start: 2010-04-10 15:45:00 end: 2010-04-10 15:45:05
start: 2010-05-10 09:12:00 end: 2010-05-10 09:13:12
...
Run Code Online (Sandbox Code Playgroud)
2010-04-10的时差(以秒为单位)为:
50
60
300
5
Run Code Online (Sandbox Code Playgroud)
2010-04-10的平均值为103.75秒.我希望我的查询返回类似于:
day: 2010-04-10 ave: 103.75
day: 2010-05-10 ave: 72
...
Run Code Online (Sandbox Code Playgroud)
我可以按开始日期分组时间差,但我不确定如何获得平均值.我尝试使用AVG函数,但我认为它只能直接用于列值(而不是另一个聚合函数的结果).
这就是我所拥有的:
SELECT
TIME_TO_SEC(TIMEDIFF(end,start)) AS timediff
FROM
Sessions
GROUP BY
DATE(start)
Run Code Online (Sandbox Code Playgroud)
有没有办法获得每个开始日期组的timediff平均值?我是聚合函数的新手,所以也许我误解了一些东西.如果您知道备用解决方案,请分享.
我总是可以专门做它并在PHP中手动计算平均值,但我想知道是否有办法在MySQL中这样做,所以我可以避免运行一堆循环.
谢谢.
Qua*_*noi 18
SELECT DATE(start) AS startdate, AVG(TIME_TO_SEC(TIMEDIFF(end,start))) AS timediff
FROM Sessions
GROUP BY
startdate
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16667 次 |
| 最近记录: |