【发布时间】:2015-10-02 01:15:37
【问题描述】:
我有一个 SQLite 数据库,我正在尝试使用其中的数据,基本上有多个传感器写入数据库。我需要将一行连接到前一行来计算该时间段的价值差异。但唯一的问题是数据库中的 ROWID 字段不能再用于加入,因为有更多的传感器开始写入数据库。
在 SQL Server 中,使用 Row_Number 和按传感器分区会很容易。我找到了这个话题:How to use ROW_NUMBER in sqlite 并实施了建议:
select id, value ,
(select count(*) from data b where a.id >= b.id and b.value='yes') as cnt
from data a where a.value='yes';
它可以工作,但速度很慢。有什么简单的我想念的吗?我试图加入可能的时差,创建一个视图。就在斗智斗勇!感谢您的任何想法!
这里是示例数据:
ROWID - SensorID - Time - Value
1 2 1-1-2015 245
2 3 1-1-2015 4456
3 1 1-1-2015 52
4 2 2-1-2015 325
5 1 2-1-2015 76
6 3 2-1-2015 5154
我只需根据 sensorID 将第 6 行与第 2 行、第 3 行与第 5 行等连接起来。
【问题讨论】: