Database SQLite行数/ID

Database SQLite行数/ID,database,sqlite,Database,Sqlite,我有一个SQLite数据库,我试图使用其中的数据,基本上有多个传感器写入数据库。我需要将一行连接到下一行,以计算该时间段的值差。但唯一的问题是数据库中的ROWID字段不能再用于加入,因为有更多的传感器开始写入数据库 在SQL Server中,很容易使用行号和传感器分区。我找到了这个主题:并实施了建议: select id, value , (select count(*) from data b where a.id >= b.id and b.value='yes') a

我有一个SQLite数据库,我试图使用其中的数据,基本上有多个传感器写入数据库。我需要将一行连接到下一行,以计算该时间段的值差。但唯一的问题是数据库中的ROWID字段不能再用于加入,因为有更多的传感器开始写入数据库

在SQL Server中,很容易使用行号和传感器分区。我找到了这个主题:并实施了建议:

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行连接起来,依此类推。

子查询可以通过一个。 在这种情况下,具有相等比较的列必须排在第一位,具有不相等比较的列必须排在第二位:

CREATE INDEX xxx ON MyTable(SensorID, Time);

谢谢你!我创建了索引:在SensorResults SensorID、ROWID上创建索引xxx;我正在使用这个查询,但是仍然很慢。有没有办法强迫它使用索引?从sensorresults b中选择rowid、sensord、时间、值,从sensorresults b中选择count*,其中a.rowid>=b.rowid和b.sensorid=2作为sensorresults a中的cnt,其中a.sensorid=2。谢谢,它使用索引搜索初始查询,然后使用该索引搜索子查询。所以我不确定会有多好,笨蛋。