Sql 结果集取决于列值的更改(以前的日期)

Sql 结果集取决于列值的更改(以前的日期),sql,sqlite,Sql,Sqlite,我有一个带有名称指示器的表和四列,每个月存储一次数据。现在我想分析数据。首先,我比较了大约一年(13个月)的一些值,发现我甚至需要一列的最后一个值的变化来决定应该采取哪种结果(这使得事情变得如此复杂) 以下是一年的SQL命令和部分结果集: SELECT e.* FROM indicators AS e ORDER BY e.date DESC LIMIT 13 date interest_rate inflation_rate exchange_rate "2018-04

我有一个带有名称指示器的表和四列,每个月存储一次数据。现在我想分析数据。首先,我比较了大约一年(13个月)的一些值,发现我甚至需要一列的最后一个值的变化来决定应该采取哪种结果(这使得事情变得如此复杂)

以下是一年的SQL命令和部分结果集:

SELECT e.* FROM indicators AS e ORDER BY e.date DESC LIMIT 13

date            interest_rate inflation_rate exchange_rate
"2018-04-02"    0.0           1.1            1.2321
[...]
"2017-04-03"    0.0           2.0            1.0691
当我发现intrest_rate列在结果集中没有最后一个更改值时,问题就出现了。在查看stackoverflow内部后,我看到了另一个SQL命令:

SELECT c.* FROM indicators AS c WHERE (c.date >= 
    ( SELECT b.date FROM indicators AS b WHERE b.interest_rate <>
        ( SELECT a.interest_rate FROM indicators AS a WHERE b.date < a.date ORDER BY a.date DESC LIMIT 1 ) 
      ORDER BY b.date DESC  LIMIT 1 ) 
    )

date            interest_rate inflation_rate exchange_rate
"2016-03-01"    0.05          0.3            1.0888
"2016-04-01"    0.0          -0.2            1.1385
[...]
"2017-04-03"    0.0           2.0            1.0691

我想计算点数作为一项投资的指标。

我被你想做的事情弄糊涂了。样本数据和期望的结果将非常有用。@Gordon Linoff:如果可以看到以前的利率,我添加了完整的结果集。所需的结果应该是查询最新的利率值以及至少最近13个月的利率值。这是我昨天的意图。
SELECT result1.* FROM 
( SELECT c.* FROM indicators AS c WHERE (c.date >= 
    ( SELECT b.date FROM indicators AS b WHERE b.interest_rate <>
        ( SELECT a.interest_rate FROM indicators AS a WHERE b.date < a.date ORDER BY a.date DESC LIMIT 1 ) 
      ORDER BY b.date DESC LIMIT 1 ) 
    ) 
) AS result1
UNION 
SELECT result2.* FROM ( SELECT e.* FROM indicators AS e ORDER BY e.date DESC LIMIT 13) AS result2
date            intr_r  infl_r  exchange_rate
"2016-03-01"    "0.05"  "0.3"   "1.0888"
"2016-04-01"    "0.0"   "-0.2"  "1.1385"
"2016-05-02"    "0.0"   "0.0"   "1.1403"
"2016-06-01"    "0.0"   "-0.2"  "1.1154"
"2016-07-01"    "0.0"   "-0.1"  "1.1102"
"2016-08-01"    "0.0"   "0.1"   "1.1113"
"2016-09-01"    "0.0"   "0.2"   "1.1132"
"2016-10-04"    "0.0"   "0.2"   "1.1161"
"2016-11-01"    "0.0"   "0.4"   "1.0946"
"2016-12-01"    "0.0"   "0.5"   "1.0635"
"2017-01-02"    "0.0"   "0.6"   "1.0541"
"2017-02-01"    "0.0"   "1.1"   "1.0755"
"2017-03-01"    "0.0"   "1.8"   "1.0597"
"2017-04-03"    "0.0"   "2.0"   "1.0691"
"2017-05-02"    "0.0"   "1.5"   "1.093"
"2017-06-01"    "0.0"   "1.9"   "1.1221"
"2017-07-03"    "0.0"   "1.4"   "1.1412"
"2017-08-01"    "0.0"   "1.3"   "1.1727"
"2017-09-01"    "0.0"   "1.3"   "1.1825"
"2017-10-02"    "0.0"   "1.5"   "1.1806"
"2017-11-01"    "0.0"   "1.5"   "1.1638"
"2017-12-01"    "0.0"   "1.4"   "1.1849"
"2018-01-02"    "0.0"   "1.5"   "1.1993"
"2018-02-01"    "0.0"   "1.4"   "1.2457"
"2018-03-01"    "0.0"   "1.3"   "1.2214"
"2018-04-02"    "0.0"   "1.1"   "1.2321"