我有一个数据库,每天更新200-1000个新行.现在,我希望有一个SQL语句,每小时,每小时返回数据,因此我可以粗略估计当前趋势,即今天将向数据库添加多少行,只需快速浏览一下这些历史图表.
所以,假设我想在过去10天内打印出10张图表,每小时总结一次数据,例如:
第9天:21,24,15,18,......,30,28,25:总计348(第9天每小时的行数和总数)第8天:32,37,38,43,...,45 ,53,55:总计442(第8天每小时的行数和总数)...... ... Day0:18,25,28,X,Y ......:tot'S'(今天的统计数据如此将会是什么?)
SQL语句如何以每天一小时的方式收集数据?
为了对今天的总"S"进行粗略估计,不是直观地观察景观,而是更好地计算"S"的预测.但是,我认为这将是一个完全不同的问题...如何做到这一点或暗示我可以获得更多信息的任何提示将非常感谢!
谢谢,/汤米
嗯,根据你的数据库引擎,你会得到不同的结果,但使用PostgreSQL,我会做类似的事情:
SELECT date_trunc('hour', table.date), count(table.id) FROM table GROUP BY date_trunc('hour', table.date) ORDER BY date_trunc('hour', table.date)
该date_trunc
函数将时间戳字段截断到某个点.该查询将每小时返回您,查询的数量,您只需要在您的软件中执行总和.
如果你真的想让一个SQL查询返回你想要的,我认为你必须使一个函数返回一个带有正确数据的sql集,但我认为在你的代码中更容易.