group-by
クエリで返された行をグループに編成します。各グループ内で count() や sum() などの集計関数を適用すると、それぞれ項目数や合計を取得できます。
構文
group-by の構文を次に示します。
1group data_stream by fields;- data_stream
- グループへのデータ入力。
- fields
- データのグループ化の基準となる項目。
1 つの項目で Group-by
この例では、クエリは各 Category 項目の行数を数え、その数をカテゴリ別にグループ化します。
1q = load "Superstore";
2q = group q by 'Category';
3q = foreach q generate 'Category' as 'Category', count() as 'count';
4q = limit q 2000;| カテゴリ | 行数 |
|---|---|
| Furniture | 2,121 |
| Office Supplies | 6,026 |
| Technology | 1,847 |
null 値を含む Group-by
グループ化された null 値をクエリで返すには、[設定] で null 値を含める設定を選択する必要があります。それ以外の場合、クエリでは null 値が無視されます。
- [設定] の [クイック検索] ボックスに「Analytics」と入力します。
- Analytics オプションのリストから [設定] を選択します。
- [設定] で [Analytics クエリに null 値を含める] のチェックボックスをオンにします。
![[設定] の null 処理の設定](https://developer.salesforce.com/docs/resources/img/ja-jp/246.0?doc_id=images%2Fbi_saql_null_handling.png&folder=bi_dev_guide_saql)
null 値を返すクエリの例を次に示します。このクエリでは、Sub_Category 項目を基準にして結果が並び替えられます。また、null を先頭に昇順で結果が表示されるように指定されています。
1q = load "Superstore";
2q = group q by 'Sub_Category';
3q = foreach q generate 'Sub_Category' as 'Sub_Category', count() as 'count';
4q = order q by 'Sub_Category' asc nulls first;
5q = limit q 2000;| サブカテゴリ | 行数 |
|---|---|
| - | 4 |
| Accessories | 775 |
| Appliances | 466 |
| Art | 796 |
| Binders | 1,523 |
| Bookcases | 228 |
| Chairs | 617 |
| Copiers | 68 |
| Envelopes | 254 |
| Fasteners | 217 |
| Furnishings | 957 |
| Labels | 364 |
| Machines | 115 |
| Paper | 1,370 |
| Phones | 889 |
| Storage | 846 |
| Supplies | 190 |
| Tables | 319 |