SQLite检测2行之间的数据变化

时间:2016-06-30 21:15:08

标签: sqlite

对于我的研究实验室,我得到了一些包含500,000个时间,电流和电压条目的文件。我制作了一个小程序,并将所有条目转储到SQLite表名称gold100mV中,该表只有3列:time,pA和mV。

是否可以有一个可以比较行并选择的查询?该查询如何?

A query that detect a large value change and select the rows:
time        pA          mV
"1.7119"    "-1037.6"   "-101.746"
"1.7121"    "-1013.18"  "-101.776"
"1.7123"    "-1007.08"  "-101.715"
"1.7125"    "-1031.49"  "-101.837" // <-- Row of interest
"1.7127"    "1684.57"   "98.938"   // <-- Row of interest 
"1.7129"    "1196.29"   "99.0295"
"1.7131"    "1098.63"   "98.999"
"1.7133"    "1098.63"   "99.1516"
"1.7135"    "1062.01"   "99.1211"

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

SELECT *
FROM gold100mV g
WHERE NOT EXISTS (
  SELECT *
  FROM gold100mV
  WHERE time > g.time AND pA > 0.9 * g.pA AND pA < 1.1 * g.pA
                      AND mV > 0.9 * g.mV AND mV < 1.1 * g.mV
)

您也可以添加和减去修正号而不是乘法,无论您选择什么。这也会选择最后一行,你需要添加一个额外的条件,即该行不能是最后一行才能获得2行。