ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework アプリケーション開発ガイド

[目次][索引][前へ][次へ]

2.3.3 集合関数による演算処理の例

ここでは,「銘柄名」と「値上がり率」という内容を持つタプルに対して,GROUP BY句と集合関数AVGを使用して,銘柄名別に値上がり率の平均値を算出する関係演算の例を示します。

CQLの定義例を次に示します。なお,実際のCQLの定義では,列名は半角英数字で指定してください。また,AVGには相関名を指定してください。

 
REGISTER QUERY q
   SELECT AVG(値上がり率)
   FROM s1[ROWS 3] GROUP BY 銘柄名;
 

このCQLを定義した場合の入力リレーションと出力リレーションの例を次の図に示します。

図2-12 集合関数による演算処理の例

[図データ]

図の横軸は時間軸です。右に行くほど時間が経過しています。t1〜t6は,タプルが到着した時刻を示します。

この例は,GROUP BY句で指定した銘柄別に,値上がり率を対象に集合演算AVG(平均値の算出)を指定しています。なお,入力リレーションは,[ROWS 3]の指定による,期間付きのリレーションです。

入力リレーションの時刻tAでの集合は「(A社,1.0)(A社,0.8)」となり,銘柄名別の平均値は「(A社,0.9)」となります。

同様に,時刻tBでの集合は「(A社,1.0)(A社,1.2)(B社,1.3)」となり,銘柄名別の平均値は,「(A社,1.1)(B社,1.3)」となります。

このように,特定時刻での銘柄名別の値上がり率の平均値は,入力リレーションのタプルの生存期間に応じたタプルとして,出力リレーションに抽出されます。