我有一个包含以下结构的表:
CREATE TABLE `range` (
`ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
`f0` float(10,2) NOT NULL,
`f1` float(10,2) NOT NULL,
...
哪些行描述了浮点数[f0-f1]
的范围。该范围可以增加(即f0 < f1
)或减少(即f0 > f1
)。
按ts
排序,我正在搜索一个查询,该查询返回最后一个增加的行,直到第一个减少的行。例如,
+---------------------+------+------+
| ts | f0 | f1 |
+---------------------+------+------+
| ... | ... | ... |
| 2015-01-24 00:00:00 | 0.20 | 0.05 |
| 2015-01-25 00:00:00 | 0.10 | 0.20 |
| 2015-01-26 00:00:00 | 0.10 | 0.30 |
+---------------------+------+------+
查询将返回最后两行,如果是
+---------------------+------+------+
| ts | f0 | f1 |
+---------------------+------+------+
| ... | ... | ... |
| 2015-01-24 00:00:00 | 0.10 | 0.20 |
| 2015-01-25 00:00:00 | 0.10 | 0.30 |
| 2015-01-26 00:00:00 | 0.20 | 0.05 |
+---------------------+------+------+
它将返回0行。
有关如何根据条件限制结果的想法吗?
SELECT * FROM range WHERE f0 > f1 ORDER BY ts DESC LIMIT ???
非常感谢您的帮助。
答案 0 :(得分:1)
select *
from range
where ts > (select max(ts)
from range
where f0 > f1)
order by ts