Oracle CQL - 计算窗口完成后的元组数

时间:2016-08-09 02:13:55

标签: oracle stream cql complex-event-processing oracle-streams

我正在使用JDeveloper在Oracle Stream Analytics中开展Oracle事件处理项目。

我有一个20元组的数据流:

(attr1,attr2,attr3)

1,1,1

2,2,2

....

20,20,20

我想计算每个窗口中的元组数量(我稍后会添加一个条件来仅计算不包含空值的元组)。 所需的输出是:

10

10

我尝试过:从Stream [行10]中选择计数(*)。但是,我得到了:

0

1

2

3

4

5

6

7

8

9

10

我也尝试过:从Stream [行10 幻灯片10 ] 中选择计数(*)。但是我明白了:

0

10

我的问题是如何指定一个查询,只有当所有N个元组到达时,才会在大小为N的窗口中返回元组总数(条件成立的元组)?

谢谢。

1 个答案:

答案 0 :(得分:0)

你的第二个查询应该没问题,但你必须添加一个having子句才能在count为10时输出。

 <query id="ExampleQuery"><![CDATA[ 
    select count(*) as total from inputChannel  [rows 10 slide 10] 
    having count(*) = 10
  ]]></query>

enter image description here

希望这可以提供帮助。