集計関数

EQLでは、次に示す集計関数がサポートされます。

関数 説明
ARB 特定のフィールドの値のセットから値を1つ選択します。選択される値は不定ですが一定です。複数割当ての属性(セット)および単一割当ての属性の両方で動作します。
AVG 特定のフィールドの算術的平均値を計算します。
COUNT 特定のフィールドの値が有効でNULLではないレコードの数を、GROUP BYの結果ごとに数えます。複数割当ての属性(セット)および単一割当ての属性の両方で動作します。
COUNTDISTINCT 特定のフィールドの、重複を除いた、有効でNULLではない値の数を、GROUP BYの結果ごとに数えます。複数割当ての属性(セット)および単一割当ての属性の両方で動作します。
MAX 特定のフィールドの最大値を見つけます。
MIN 特定のフィールドの最小値を見つけます。
MEDIAN 特定のフィールドの中央値を見つけます。(PAGE PERCENTはオーバーラップ機能を提供することに注意してください)。引数が整数の場合、常にdoubleが返されます。
EQLで中央値を計算する数値の個数が偶数の場合は、EQLでのMEDIANの定義は通常の統計学的定義と同じであることに注意してください。つまり、入力のリレーションの内容が{1,2,3,4}で、次の問合せを実行するとします。
RETURN results AS SELECT
  MEDIAN(a) AS med
GROUP
ソートされた数値セットの真ん中の2つ要素の平均値である2.5が結果になります。
STDDEV 特定のフィールドの標準偏差を計算します。
STRING_JOIN 1つの文字列属性のすべての値が格納された、1つの文字列を作成します。
SUM フィールド値の合計を計算します。
VARIANCE 特定のフィールドの分散(つまり、標準偏差の平方)を計算します。

STRING_JOIN関数

STRING_JOIN関数は文字列プロパティとデリミタを受け取り、単一の文字列を作成します。この内容は、プロパティのすべての値をデリミタで区切って連結したものです。構文は次のとおりです。
STRING_JOIN('delimiter', string_attribute)

デリミタは、文字列リテラルを単一引用符で囲んだものです。

結果の文字列のソート順は不定ですが、各グループ内での順序は一定です。NULL値は出力では無視されますが、値が空の文字列の場合は無視されません。

この問合せの例では、R_NAME標準属性は文字列型で地域の名前が格納されており、N_NAME標準属性も文字列型で国の名前が格納されています。
RETURN results AS SELECT
  STRING_JOIN(', ',R_NAME) AS Regions,
  STRING_JOIN(',',N_NAME) AS Nations
GROUP
この問合せでは、地域と国の名前がカンマで区切って返されます。
Nations
ALGERIA, ARGENTINA, BRAZIL, CANADA, CHINA, EGYPT, ETHIOPIA, FRANCE, GERMANY, INDIA, INDONESIA, IRAN,
IRAQ, JAPAN, JORDAN, KENYA, MOROCCO, MOZAMBIQUE, PERU, ROMANIA, RUSSIA, SAUDI ARABIA, UNITED KINGDOM,
UNITED STATES, VIETNAM
Regions
AFRICA,AMERICA,ASIA,EUROPE,MIDDLE EAST

Regionsのデリミタにはスペースが含まれていますが、Nationsのデリミタには含まれていません。つまり、出力語の間にスペースが必要な場合は、デリミタでスペースを指定する必要があります。