SQLite将许多行平均化为两个所需行之间的X平均值

SQLite将许多行平均化为两个所需行之间的X平均值,sql,sqlite,average,Sql,Sqlite,Average,我在SQLite中有行,比如说10.0000,最后一行是unix时间戳。我想将从今天00:00到23:59的每一个值平均到X平均组。如果今天有1000条记录,X是10,那么平均每100个值,结果将是10x平均100条记录。如果x为20,则平均每个值,结果为平均值50x。这些值来自传感器,比如温度,我希望能够跟踪今天X到Y小时之间的温度,以及每天的温度 做这件事最好的方法是什么?我使用C++的SQLITE3,我可以用C++做更多的查询,但是我想让它成为SQLite,并且只有在可能的情况下才能得到结

我在SQLite中有行,比如说10.0000,最后一行是unix时间戳。我想将从今天00:00到23:59的每一个值平均到X平均组。如果今天有1000条记录,X是10,那么平均每100个值,结果将是10x平均100条记录。如果x为20,则平均每个值,结果为平均值50x。这些值来自传感器,比如温度,我希望能够跟踪今天X到Y小时之间的温度,以及每天的温度

做这件事最好的方法是什么?我使用C++的SQLITE3,我可以用C++做更多的查询,但是我想让它成为SQLite,并且只有在可能的情况下才能得到结果。可视化:

我应该从这里开始,感谢任何帮助

谢谢。

您可以使用窗口功能创建要聚合的组:

SELECT AVG(value) avg_value
FROM (
  SELECT *, NTILE(3) OVER (ORDER BY id) grp
  FROM tablename
)  
GROUP BY grp
NTILE()
括号内的数字对应于您需求中的数字X。
Id
是表格应在其上排序的列。
如果您有
date
列,则更改为:

SELECT AVG(value) avg_value
FROM (
  SELECT *, NTILE(3) OVER (ORDER BY date) grp
  FROM tablename
)  
GROUP BY grp

请参阅简化版。

请提供样本数据和所需结果。某种db小提琴可能也会有帮助。这里有一个关于我想要实现的可视化描述:我的数据库结构是:temp INT NOT NULL,time INT NOT NULL非常感谢,这是一个巨大的帮助-我已经尝试过了,它起了作用:)我不是SQL专家,我们必须更深入地学习。