日付属性の演算
販売速度、サポートチケットへの応答時間、その他の期間メトリックの計算には、データ演算を使用できます。
GoodDataでは、日付属性に直接適用できる演算をサポートしています。これにより、LDMの複雑性の軽減、レポーティングのパフォーマンスの向上、メトリック定義の効率化を実現します。
日付属性で期間メトリックを作成するには、目的の細分性レベル (日付、週、月、四半期など) で終了日から開始日を減算します。
SELECT Date (End Date) - Date (Start Date) BY [connection point]
[connection point] は、日付ディメンションが属するデータセットのプライマリキーを表します。BYステートメントは、日付演算が実行される細分性を指定します。
例
イベントの期間
イベントの期間を計測する場合を考えます。イベントには開始日と終了日があります。
イベントレベルで集約するメトリックを指定するには、イベント属性を [How] パネルからレポートに追加します。
この結果、レポートにはイベントごとに内訳したイベント期間メトリックが表示されます。
イベント平均期間
イベント平均期間を計算するには、メトリックで次を行う必要があります。
- 各イベントの期間を計算する。
- これらの期間値の平均を返す。
各イベントの期間を計算するには、終了日から開始日を減算し、イベントごとに期間を計算することを指定するステートメントを追加します。
SELECT Date (End Date) - Date (Start Date) BY Event
平均値を返すには、平均関数内にメトリックをラップします。
SELECT AVG((SELECT Date (End Date) - Date (Start Date) BY Event))
上記の構文の内側のメトリックはサブメトリックと呼ばれ、MAQL では常に二重丸括弧で囲みます。サブメトリックを別途定義し、別のメトリック内で参照する場合には、一重丸括弧を使用します。
SELECT AVG(Event Duration)
この場合、Event Durationメトリックはあらかじめ定義され、次の構文を持ちます。
SELECT Date (End Date) - Date (Start Date) BY Event
シンプルで誤りのないMAQL構文にするためには、上記のようにサブメトリックを別途定義してから参照するようにするとよいでしょう。
新しいメトリックの結果は、イベント平均期間を表す単一のメトリック値になります。
レポートからイベント属性を削除し、視覚化モードを「ヘッドライン」にして単一の数値のみを表示します。
イベントタイプごとのイベント平均期間を表示するには、レポートにタイプ属性を追加します。
複雑な例
属性演算は、高度な期間計算に対応しています。より複雑な例については、明示的なリフティング (Explicit Lifting)を参照してください。このセクションは、リピート顧客が最初に購入してから 2 回目の購入に至るまでの平均経過時間を計算する場合に有用です。
詳細については、日付演算を用いて日付の最小値/最大値を特定するを参照してください。
空の値の処理
空の日付値はゼロ (0) に変換されるため、予想外の演算結果をもたらす可能性があります。
ソースデータに空データが含まれる場合、柔軟なメトリックを作成して計算から空の値を除外するようにします。たとえが、次のようなメトリックがあるとします。
SELECT AVG(Merchant Live Date-Merchant Create Date)
日付値のいずれかが空の値である場合にはゼロ値になり、平均計算全体をかく乱させる異常値を生じさせます。
次のカスタムメトリックを用いてこのメトリック計算を変更し、空の値を除外できます。
SELECT AVG((select Date (Merchant Live Date) - Date (Merchant Create Date) BY Estore ID
WHERE Date (Merchant Live Date) <> (empty value)
AND Date (Merchant Create Date) <> (empty value)))