日付演算を用いて日付の最小値/最大値を特定する

特定のイベントが発生した最初の日と最後の日に基づいてデータをプルすることがあります。たとえば、ヘルプデスクのエージェントがキューで最も古い未解決のチケットを見つける場合を考えます。

GoodData では日付属性による日付演算を使用できます。これと同じ論理は、複雑でないメトリックとシンプルな論理データモデル (LDM) を用いることにより、メトリックにも応用できます。

LDM 例

各町で最初に発生したイベントのタイプを特定するには、日付演算を用いて各町の最初の発生日 (つまり MIN Date) (開始日) を特定します。

イベントに日付を接続する

LDMダイアグラムのファクトと属性は、自身の左側で接続しているオブジェクトでのみスライスアンドダイスが可能です。

この例では、Date (Start Date) には左側で接続しているオブジェクトがありません。

このため、まず MAQL で接続ポイントであるイベントに再結合します。

SELECT Date (Start Date) BY Event

BY 句により、このメトリックは残りの Event と Town のデータセットと連携できるようになります。

最初 (最も古い) 日付を特定する

次に、「First Start Date Per Town」というメトリックを作成します。これにより、各町のイベント発生の開始日を特定します。

SELECT MIN ((SELECT Date (Start Date) BY Event)) BY Town, ALL OTHER

BY Town and ALL OTHER 句により、各町はそこで最初のイベントが発生した日を1日だけ返します (各町で複数のイベントが発生していたとしても返されるのは1日だけです)。

この日付は実際の日付ではなく、数値で表されます。

例:

次のメトリックとカスタム数値形式の例を使用して、日付形式をyyyy-mm-ddで表示します。

SELECT MAX ((SELECT (10000 * MAX(Year (Date))) + (100 * MAX(Month (Date))) + (MAX(Day of Month (Date))) BY <connection point>)) 
WHERE (SELECT COUNT(Date (Date), <connection point>) BY Year (Date), ALL OTHER) > 0

カスタム数値形式:

[=null]N/A; ########

メトリックをレポートに挿入する

最後に、その日に発生したイベント数を特定する最終的なメトリックに、前のメトリックを追加します。

SELECT COUNT (Event) WHERE Date (Start Date) = First Start Date Per Town

「First Start Date Per Town」メトリックを用いて、各町で発生した最初のイベントのみをカウントします。

最終的なメトリックは、各町で最初に発生した Event と Type を示します。それ以降の Event はレポートから除外されています。

日付の操作については、「日付属性の演算」を参照してください。