# 動的パラメーター利用説明
動的パラメーターは、SQLコードの内容の一部を動的調整することを対応します。実際の計算中に、動的パラメーターの値がクエリコードに取り込まれ、使用された変数 ${パラメータタイプ: パラメーター名}
が置き換えられます。 レポートを保存する際に、パラメーターは現在の動的パラメーターの値がデフォルトとして保存されます。
動的パラメーターを使用し、複数回使用される複雑なSQLコードを管理できます。また、動的パラメーターを使用し、レポートの閲覧者が特定の範囲内でクエリコードを変更できるようにすることもできます。
# 可変コンテンツ
可変コンテンツの動的パラメーターは、特定の時間またはカスタム入力値の選択を対応しており、計算中に直接置き換えることができます。
例えば、TOP Nをコインの量でランク付けする場合、可変コンテンツにNを表すことができ、利用メンバーは複数のレポートを保存することなく、必要に応じて上位 10、上位 100、または上位 1000 人のユーザーの詳細を引き出すことができます。
SELECT * FROM
ta.v_user_2
ORDER BY "coin_sum" DESC
LIMIT ${Variable1}
DANGER
データセキュリティのため、元のクエリコードで使用されていないテーブルは可変コンテンツに表示できません。
# イベント時間
イベント時間の動的パラメータを使用し、分析期間内のイベントデータをすばやくフィルターできます。
例えば、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_with_timezone"
)"$part_date"
に基づくフィルターではなく、他のモデルロジックと一致します。
この動的パラメーターは、現在のプロジェクトのイベントテーブルに対してのみ有効であり、SQLレポート内の他のプロジェクトのイベントテーブルには影響しないことに注意してください。
# 式(数値、文字列、時間)
数値、文字列、時間の3種類のフィールドをフィルターする場合、式の動的パラメーターを使用して柔軟に構成できます。
例えば、ユーザープロパティの累積課金額が数値である場合、クエリコードに数値式を挿入すると、レポート閲覧者で、累積課金額が特定の範囲内または特定の数値を超えるユーザーをフィルター処理できます。
SELECT * FROM
ta.v_user_2
WHERE "coin_num" ${Number:number1}
LIMIT 10
# 選択肢
動的パラメーターを選択することにより、事前に準備されたSQLコードに異なるオプション名を設定できます。 閲覧者は名前に従って選択するだけでよく、対応するSQLコードが動的パラメーターを自動的に置き換えます。
例えば、ユーザーをレベル間隔に従ってタイプに分類できます。レポート閲覧者はユーザーの詳細をタイプ別にすばやく表示したいと考えています。簡単に選択できるように、レベル間隔のフィルターリングコードに名前を設定できます。
SELECT * FROM
ta.v_user_2
WHERE "user_level" ${Selector:selector2}
LIMIT 10