2016-08-09 78 views
0

ich arbeite auf einer Oracle-Event Processing-Projekt in Oracle-Stream Analytics JDeveloper verwenden.Oracle CQL - Zählen der Anzahl von Tupeln nach dem Abschluss eines Fensters

Ich habe einen Datenstrom von 20 Tupeln in Form von:

(attr1,attr2,attr3) 

1,1,1 

2,2,2 

.... 

20,20,20 

Ich möchte in jedem Fenster die Anzahl von Tupeln zählen (Ich werde später eine Bedingung hinzufügen, nur Tupel zu zählen, die keine Nullwerte). Die gewünschte Ausgabe ist:

10 

10 

I versucht: Select count (*) aus Strom [Zeilen 10]. Allerdings erhalte ich:

0 

1 

2 

3 

4 

5 

6 

7 

8 

9 

10 

ich auch versucht: SELECT COUNT (*) Von Stream [Reihen 10 Schlitten 10]. Allerdings erhalte ich:

0 

10 

Meine Frage ist, wie eine Abfrage angeben, die die Gesamtzahl von Tupeln zurückkehren (für das eine Bedingung erfüllt ist) in einem Fenster der Größe N nur, wenn alle N Tupeln ankommen?

Vielen Dank.

Antwort

0

Ihre zweite Abfrage sollte in Ordnung sein, aber Sie müssen eine having-Klausel hinzufügen, die Ausgabe nur haben, wenn Zählung 10.

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

enter image description here

Hoffnung ist dies helfen kann.