sqlite - SQLite:计算计数器在当前日期和星期内如何增加
问题描述
我有一个 SQLite 数据库,在 unixtime 中有一个计数器和时间戳,如下所示:
+---------+------------+
| counter | timestamp |
+---------+------------+
| | 1582933500 |
| 1 | |
+---------+------------+
| 2 | 1582933800 |
+---------+------------+
| ... | ... |
+---------+------------+
我想计算“计数器”在当天和本周的增加情况。
在 SQLite 查询中可能吗?
谢谢!
解决方案
如果您的 SQLite 版本 >= 3.25.0,SQLite 窗口函数将帮助您实现这一目标。
使用该LAG
函数从上一条记录中检索值- 如果没有(第一行就是这种情况) ,则提供默认值,与当前行相同。
出于演示的目的,此代码:
SELECT counter, timestamp,
LAG (timestamp, 1, timestamp) OVER (ORDER BY counter) AS previous_timestamp,
(timestamp - LAG (timestamp, 1, timestamp) OVER (ORDER BY counter)) AS diff
FROM your_table
ORDER BY counter ASC
会给出这个结果:
1 1582933500 1582933500 0
2 1582933800 1582933500 300
推荐阅读
- spring - 将多个属性值注入多个 bean
- swift - 在 Google 地图上显示多个“GMSMarker”标记
- c++ - 不可预知的嵌套循环数
- c++ - STL __stl_hash_string
- sql - 在 SQL Server 中提取 2 个独立查询,然后合并为一个子查询
- jquery - Html - 视频海报问题
- java - E/AndroidRuntime: FATAL EXCEPTION: main (当点击按钮时应用程序崩溃)
- tfs - TFS CD 错误:指定的路径、文件名或两者都太长。
- c - 在 C 中使用循环和函数的基本错误
- java - 如果键入了 AutoCompleteTextView 完整建议词,如何收听