動的パラメーターの使い方
動的パラメーターを使うと、クエリ文の一部の内容を調整できます。実際の計算時には、動的パラメーターの値がクエリ文に代入され、使用されている変数${参数类型:参数名}が置き換えられます。レポートを保存すると、その時点の動的パラメーターの値がデフォルト値として保存されます。
何度も使用する複雑なクエリ文の断片を1つの動的パラメーターで管理したり、レポートの閲覧者が動的パラメーターを通じて一定の範囲内でクエリ文を変更できるようにしたりできます。
可変コンテンツ
可変コンテンツの動的パラメーターでは、具体的な時間を選択するか、値をカスタム入力できます。計算時にそのまま置き換えられます。
例えば、コイン量でTOP Nのランキングを作成する場合、Nを可変コンテンツで表すと、運営担当者が必要に応じて上位10、上位100、上位1000のユーザーの詳細を取得でき、複数のレポートを保存する必要がなくなります。
SELECT * FROM
ta.v_user_2
ORDER BY "coin_sum" DESC
LIMIT ${Variable1}
データセキュリティのため、可変コンテンツには、元のクエリ文で使用されていないテーブルを含めることはできません。
イベント時間
イベント時間の動的パラメーターを使うと、分析期間内のイベントデータをすばやく絞り込めます。
例えば、SQLレポートで過去7日間のユーザーの累積課金額によるランキングを作成する場合、動的パラメーターを追加して動的期間を選択すると、レポートのクエリ時に当日から遡って過去7日間の課金イベントに基づいて集計されます。
SELECT
"#user_id"
, sum("count") count_sum
FROM
v_event_2
WHERE (("$part_event" = 'recharge') AND (${PartDate:date1}))
GROUP BY "#user_id"
ORDER BY count_sum desc
LIMIT 10
プロジェクトでマルチタイムゾーンを有効にしている場合は、イベント時間パラメーターに「タイムゾーンオフセットの影響を受けるか」を追加で選択することもできます。タイムゾーンの影響を受ける動的パラメーターは、計算時に、"$part_date"ではなく、表示タイムゾーンにオフセットしたイベント発生日(つまり"$part_date_with_timezone")に基づいて絞り込みます。これは他のモデルのロジックと同じです。
なお、この動的パラメーターは現在のプロジェクトのイベントテーブルにのみ適用され、SQLレポート内の他のプロジェクトのイベントテーブルには影響しません。
式(数値、文字列、時間)
数値、文字列、時間の3種類のフィールドで絞り込みを行う場合は、式の動的パラメーターを使って柔軟に設定できます。
例えば、累積課金額は数値型のユーザープロパティです。クエリ文に数値の式を挿入すると、レポートの閲覧者が、累積課金額が特定の区間にあるユーザーや一定の額を超えるユーザーを自分で絞り込めます。
SELECT * FROM
ta.v_user_2
WHERE "coin_num" ${Number:number1}
LIMIT 10
選択肢
選択肢の動的パラメーターを使うと、あらかじめ用意したクエリ文の断片にそれぞれ選択肢の名前を設定できます。閲覧者が名前で選ぶだけで、動的パラメーターが対応するクエリ文の断片に自動で置き換えられます。
例えば、レベルの区間によってユーザーをさまざまなタイプに分けられる場合に、レポートの閲覧者がタイプ別にユーザーの詳細をすばやく確認したいときは、レベルの区間ごとのフィルター文の断片に名前を設定しておくと、選択しやすくなります。
SELECT * FROM
ta.v_user_2
WHERE "user_level" ${Selector:selector2}
LIMIT 10

