ステートメント
SAQL クエリは、入力データセットを読み込み、そのデータセットに対して操作を実行し、結果のデータセットを出力します。クエリはステートメントで構成されます。各 SAQL ステートメントには入力ストリーム、操作、および出力ストリームがあります。
ステートメントはキーワード (filter、group、order など)、識別子、リテラル、特殊文字で構成されます。ステートメントは複数行にわたることができ、セミコロンで終了します。
各クエリ行がストリームと呼ばれる識別子に割り当てられます。このルールの唯一の例外は、明示的な割り当てが不要なクエリの最終行です。
出力ストリームは、= 演算子の左側にあり、入力ストリームは = 演算子の右側にあります。
例
次の SAQL クエリの各行は SAQL ステートメントです。
1q = load "0Fcc00000004DI1CAM/0Fd500000004F4sCAE";
2q = group q by all;
3q = foreach q generate count() as 'count', unique('OL.Helpful') as 'unique_OL.Helpful';
4limit q 2000;SAQL は複合的です。ステートメントをまとめてチェーニングしてデータを順次操作できます。SAQL ステートメントの順序は、ステートメント内の操作によってクエリの結果をどう変わるかに応じて適用されます。
ステートメントの順序には、次のルールがあります。
- filter および order の順序は、入れ替えても結果は変わらないため、入れ替えることができます。
- offset は、filter および order より後に置く必要があります。
- offset は limit より前に置く必要があります。
- foreach ステートメントの後に置ける offset ステートメントは 1 つ以下です。