SQL查询来计算以bool标志为true的2行所包围的多行是否满足某些条件

问题描述 投票:0回答:1

说我有一个像这样的大数据集

row | id | flag | sequence | count |   text
...
...
1     abc  true     22         1       textA
2     abc  false    23         8       textB
3     abc  false    24         2       textZ
4     abc  true     25         1       textA

5     bdf  false    10         1       textA
6     bdf  true     11         1       textB
7     bdf  false    12         2       textA
8     bdf  false    13         4       textF
9     bdf  false    14         6       textZ
10    bdf  true     15         1       textA
...
20    dhg  true     5         4       textF
21    dhg  false    6         20       textZ
22    dhg  true     7         1       textA

...
...

具有相同ID的所有行都保证按递增顺序排列。

请帮助写一个查询,以将其计为1,如果>>

  1. 具有真实标志的2行之间的多行至少有2行
  2. 和总数(计数)> 4。
  3. 并且其中至少有一行具有textZ。
  4. 因此,在上述数据集中,第1-4行满足条件,应计为1。第5-10行也满足所有条件,因此现在计数为2。第20-22行不满足第二个条件,因此计数保持为2。对于上面的示例,此查询的输出应为2。

谢谢。

说我有像这样的大数据集| id |标志顺序|计数| text ... ... 1 abc true 22 1 textA 2 abc false 23 8 textB 3 abc false ...

sql presto
1个回答
1
投票

如果我理解正确,则可以基于给定值之前的true个值的数量来分配分组:

© www.soinside.com 2019 - 2024. All rights reserved.