この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

QueryBuilder クラス

QueryBuilder クラスは、CRM Analytics に渡す適切な形式の SAQL クエリを構築するためのメソッドを提供します。

名前空間

wave

使用方法

QueryBuilder とその関連付けられたクラス Wave.ProjectionNode および Wave.QueryNode を使用して、SAQL ステートメントを段階的に作成します。次に例を示します。

1public static void executeApexQuery(String name){
2  Wave.ProjectionNode[] projs = new Wave.ProjectionNode[]{
3    Wave.QueryBuilder.get('State').alias('State'), 
4    Wave.QueryBuilder.get('City').alias('City'), 
5    Wave.QueryBuilder.get('Revenue').avg().alias('avg_Revenue'), 
6    Wave.QueryBuilder.get('Revenue').sum().alias('sum_Revenue'),                                     
7    Wave.QueryBuilder.count().alias('count')};
8                
9  ConnectApi.LiteralJson result = Wave.QueryBuilder.load('0FbD00000004DSzKAM', '0FcD00000004FEZKA2')
10    .group(new String[]{'State', 'City'})
11    .foreach(projs)
12    .execute('q');
13  String response = result.json;
14}

QueryBuilder は CRM Analytics Apex SDK の第 1 フェーズの中核です。もっと詳しく見てみましょう。シンプルな count クエリを次に示します。

1Wave.ProjectionNode[] projs = new Wave.ProjectionNode[]{Wave.QueryBuilder.count().alias('c')};
2String query = Wave.QueryBuilder.load('datasetId', 'datasetVersionId').group().foreach(projs).build('q');

この結果作成される SAQL クエリは次のようになります。

1q = load "datasetId/datasetVersionId";
2q = group q by all;
3q = foreach q generate count as c;

union ステートメントを使用した、より複雑な例を次に示します。

1Wave.ProjectionNode[] projs = new Wave.ProjectionNode[]{Wave.QueryBuilder.get('Name'), Wave.QueryBuilder.get('AnnualRevenue').alias('Revenue')};
2Wave.QueryNode nodeOne = Wave.QueryBuilder.load('datasetOne','datasetVersionOne').foreach(projs);
3Wave.QueryNode nodeTwo = Wave.QueryBuilder.load('datasetTwo', 'datasetVersionTwo').foreach(projs);
4String query = Wave.QueryBuilder.union(new List<Wave.QueryNode>{nodeOne, nodeTwo}).build('q');

この結果作成される SAQL クエリには qaqb の 2 つの射影ストリームがあります。

1qa = load "datasetOne/datasetVersionOne";
2qa = foreach q generate Name,AnnualRevenue as Revenue;
3qb = load "datasetTwo/datasetVersionTwo";
4qb = foreach q generate Name,AnnualRevenue as Revenue;
5q = union qa, qb;

QueryBuilder のメソッド

QueryBuilder のメソッドは次のとおりです。

load(datasetID, datasetVersionID)

データセットからストリームを読み込みます。

署名

public static wave.QueryNode load(String datasetID, String datasetVersionID)

パラメータ

datasetID
型: String
データセットの ID。
datasetVersionID
型: String
データセットのバージョンを識別する ID。

戻り値

型: wave.QueryNode

count()

クエリ条件に一致する行数を計算します。

署名

public static wave.ProjectionNode count()

戻り値

型: wave.ProjectionNode

get(projection)

特定の属性を選択して照会します。

署名

public static wave.ProjectionNode get(String proj)

パラメータ

proj
型: String
照会する列の名前。

戻り値

型: wave.ProjectionNode

union(unionNodes)

複数の結果セットを 1 つの結果セットに結合します。

署名

global static Wave.QueryNode union(List<Wave.QueryNode> unionNodes)

パラメータ

unionNodes
型: List<wave.QueryNode>
結合するノードのリスト。

戻り値

型: wave.QueryNode

cogroup(cogroupNodes, groups)

共通グルーピングとは、2 つの入力ストリームが独立してグループ化され、横に並べて配置されることを意味します。両方のグループに存在するデータのみが結果に表示されます。

署名

global static Wave.QueryNode cogroup(List<Wave.QueryNode> cogroupNodes, List<List<String>> groups)

パラメータ

cogroupNodes
型: wave.QueryNode
グループ化するノードのリスト。
groups
型: String
グルーピングの種別。

戻り値

型: wave.QueryNode