我有这张表:
`Telegramas` (`Id`, `Fecha`, `Valor_Dispositivo`) VALUES
(1, '2017-12-14 11:06:01.6976', '5'),
(2, '2017-12-14 11:07:01.4561', '2'),
(3, '2017-12-14 11:08:01.1651', '6'),
(4, '2017-12-14 12:06:01.2146', '1'),
(5, '2017-12-14 12:40:01.7981', '9');
我需要这样的导出:
2017-12-14 11:00:00.0000 -> 4.33
2017-12-14 12:00:00.0000 -> 5
我需要每小时对日期列计算的时间间隔的数据进行平均值。
这是我的疑问,我很迷茫。我需要帮助。
SELECT TIME(DATE_SUB(Telegramas.Fecha,INTERVAL (MINUTE(Telegramas.Fecha)%20) MINUTE)) as tiempo, SUM(IFNULL(Telegramas.Valor_Dispositivo,0)) as suma FROM Telegramas GROUP BY Fecha ORDER BY Telegramas.ID_Auto DESC;
最佳答案
一种方法是从时间戳
中提取日期
和小时
部分,并按结果进行分组。
select DATE_ADD(date(fecha), INTERVAL EXTRACT(HOUR FROM fecha) HOUR) as FECHA_DATE_HOUR,
avg(Valor_Dispositivo) as Valor_Dispositivo
from Telegramas
group by date(fecha), EXTRACT(HOUR FROM fecha);
结果:
+---------------------+-------------------+
| FECHA_DATE_HOUR | Valor_Dispositivo |
+---------------------+-------------------+
| 14.12.2017 11:00:00 | 4.3333 |
| 14.12.2017 12:00:00 | 5.0000 |
+---------------------+-------------------+
<强> DEMO
关于mysql - 对mysql时间间隔的值求平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47829080/