什么查询会 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 中了解更多关于使用时间的信息
首先,在 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 中了解更多关于使用时间的信息