什么查询会 return 每小时从具有累积值的 SQLite 数据中消耗?

What query will return consumption per hour from SQLite data with cumulative value?

首先,在 SQL 方面,我几乎是一个完全的新手,所以我痛苦地意识到除了最简单的查询之外,我可能需要用勺子喂任何东西。我进行了很多搜索,但我发现大多数相关示例似乎过于复杂或过于笼统,无法帮助我解决问题。

我在 SQLite 数据库中有以下 table:

CHANGE_DATE NEW_VALUE
2022-01-20 01:21:53 341
2022-01-20 01:11:55 341
2022-01-19 23:05:16 341
2022-01-19 22:55:08 340
2022-01-19 22:45:08 340
2022-01-19 22:41:02 340
2022-01-19 20:38:46 339
2022-01-19 20:35:13 339
2022-01-19 20:25:15 339
2022-01-19 20:15:08 338
2022-01-19 18:11:42 338
2022-01-19 18:05:10 338

我想做的是查询 returns 每小时的总变化。从数学上讲,我可以从前一小时的最高值中减去每小时的最高值,或者计算每小时内 highest/lowest 值(以及下一步中的每天)之间的差异。

我试图理解和修改很多具有相似要求的示例,但此时我不知道从哪里开始。非常感谢任何帮助。

使用一些与你的语言技能相关的ORM

java脚本:模拟 c#:小巧玲珑,entity framework python : sql所有方案 java : spring ...


因此,如果您想要纯 SQL 查询,我希望下面的代码对您有所帮助:

此代码向您显示每小时 new_value 的最大值:

select Max(new_value) as max_value , strftime('%Y-%m-%d %H', 
change_date) as _date
from [table_name] 
GROUP BY strftime('%H', change_date),strftime('%j', change_date)
ORDER by _date DESC

此代码将显示一小时内不同值之间每小时的总变化:

select Max(new_value)-Min(new_value) as total_change_per_hour , strftime('%Y-%m-%d %H', change_date) as _date
from [table_name] 
GROUP BY strftime('%H', change_date),strftime('%j', change_date)
ORDER by _date DESC

如果您每天都想要它,只需将其更改为此代码即可:

select Max(new_value)-Min(new_value) as total_change_per_hour , strftime('%Y-%m-%d %H', change_date) as _date
from [table_name] 
GROUP BY strftime('%j', change_date)
ORDER by _date DESC

您应该将 [table_name] 替换为您的 table 姓名

您可以通过 this link

在 sql 中了解更多关于使用时间的信息