什么是 SQL 查询以 5 分钟间隔选择数据和数据条目的 AVG

Posted

技术标签:

【中文标题】什么是 SQL 查询以 5 分钟间隔选择数据和数据条目的 AVG【英文标题】:What is SQL query to select data and AVG of data entries with 5 min intervals 【发布时间】:2020-04-21 19:02:25 【问题描述】:

我有 18 个电能表读取器,每 5 分钟将数据发送到 SQL Server 数据库。

在此之后,我提取该数据并将其绘制到图表上。问题是图上的线不平滑,看起来是这样的:

我不想每 5 分钟看到一次波纹线,而是想对所有 18 个读数进行平均,并在那时提供一个 AVG 数字。所以我的问题是,我应该使用什么 SQL 查询来选择所有数据,以 5 分钟的间隔对其进行平均并为图表做准备?

这是数据库示例:

【问题讨论】:

数据库中的数据是如何组织的?可以添加几行示例数据吗? 分享该信息的最佳方式是什么?它不允许我在此处添加屏幕截图,并且没有提供足够的字符来容纳数据样本? 你可以试试dbfiddle.uk 我已将数据库中的屏幕截图添加到问题中。请看上面 【参考方案1】:

我将每个时间戳四舍五入到最接近的分钟,但应该这样做。

SELECT 
  dateadd(mi, datediff(mi, 0, DoD), 0) as TimeStamp
, AVG(T_Energy_A) as AverageEnergy
FROM energyReadingsTable
GROUP BY dateadd(mi, datediff(mi, 0, DoD), 0)

【讨论】:

啊哈哈它成功了。这正是我所需要的!非常感谢你!因为这是我第一次使用数据库和创建网页,如果你节省了我很多时间:) 再次感谢!

以上是关于什么是 SQL 查询以 5 分钟间隔选择数据和数据条目的 AVG的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句问题,查询时间字段与上条数据间隔小于10分钟的数据

Mysql如何以10分钟间隔选择计数聚合结果

要求:oracle数据库,按照时间间隔2分钟查询数据,结果如第一行数据是13:55的数据,第二条就是13:57的

在 Oracle SQL 中按时间间隔聚合数据

如何使用 Mysql 查询获取 3 分钟间隔数据

如何将时间列分别分组为 5 分钟间隔和最大值/最小值 SQL?