mysql - 对mysql时间间隔的值求平均值

标签 mysql sql timestamp average

我有这张表:

`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/

相关文章:

mysql - 两个如何根据其中一个中的最高值连接到表?

mysql - SQL - 从具有公共(public)字段的组中获取不同的记录

php - 如何在单个sql查询中选择和求和

python - python中毫秒为零时如何将时间戳写入txt文件

PHP 生成 13 位时间戳,如 mktime

php - 我想出一个SQL中的语法错误

sql - 如何在 INSTEAD OF UPDATE 触发器中检查列是否正在更新

sql按次数定义一行/它如何显示为其他行

sql - 选择表中元组的最大值

Javascript 时间戳转 php - mysql 时间戳类型