【发布时间】:2021-06-02 19:53:51
【问题描述】:
有这样的表格和数据:
create table sensor_values(
dt DateTime default now(),
value UInt32
)
engine MergeTree()
partition by toYYYYMM(dt)
order by tuple();
insert into sensor_values(value) values (1), (2), (11), (13), (4), (17), (5), (8);
数据:
value
-----
1
2
11
13
4
17
5
8
我想选择从第一个错误值 (11) 到最后一个错误值 (17) 范围内的数据。错误值超过 10。
选择后的期望范围:
value
-----
11
13
4
17
我的第一个想法是定义价值是否坏,然后计算(以某种方式)累积总和:
value isBad cumSum
--------------------
1 0 0
2 0 0
11 1 1
13 1 2
4 0 2
17 1 3
5 0 3
8 0 3
然后我会从 min(cumSum) 到 max(cumSum) - 1 中进行选择,但我错过了最后一个错误值。
如何获得选择结果中包含的最后一个值?
【问题讨论】:
标签: clickhouse