首先,在SQL方面,我几乎是一个完全的新手,所以我痛苦地意识到,除了最简单的查询之外,我可能需要接受任何东西。我已经搜索了很多,但我发现的大多数相关例子似乎过于复杂或笼统,无法帮助我解决问题。
我在SQLite数据库中有下表:
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 |
使用一些与您的语言技能相关的ORM
javascript:mockc#:dapper,实体框架python:sqlallschemejava:弹簧…
所以如果你想要纯SQL查询,我希望下面的代码能帮助你:
该代码向您显示每小时的最大新值:
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]替换为您的表名
您可以通过这个链接了解更多关于在sql中使用时间的信息