Database SQLite行数/ID
我有一个SQLite数据库,我试图使用其中的数据,基本上有多个传感器写入数据库。我需要将一行连接到下一行,以计算该时间段的值差。但唯一的问题是数据库中的ROWID字段不能再用于加入,因为有更多的传感器开始写入数据库 在SQL Server中,很容易使用行号和传感器分区。我找到了这个主题:并实施了建议: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
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。谢谢,它使用索引搜索初始查询,然后使用该索引搜索子查询。所以我不确定会有多好,笨蛋。