2016年8月24日水曜日

【トレジャーデータ】アクセスログから毎月月初に自動で前月分の各ユーザのログイン日数を集計する(TD_TIME_TRUNC)

クエリは以下の通り(毎月自動実行は「Schedule」で別途設定)

SELECT
  user_id,
  COUNT(1) AS login_days
FROM (
    SELECT
      date_time,
      user_id
    FROM
      logdata
    WHERE
      TD_TIME_RANGE(TD_TIME_PARSE(date_time),
        TD_DATE_TRUNC('MONTH',TD_TIME_ADD(TD_SCHEDULED_TIME(),
          '-1d')),
        TD_SCHEDULED_TIME(),
        'jst')
    GROUP BY
      date_time,
      user_id
  )
GROUP BY
  user_id
ORDER BY
  login_days DESC

もし、過去1ヶ月分ではなくて30日分であれば、
TD_DATE_TRUNC('MONTH',TD_TIME_ADD(TD_SCHEDULED_TIME(), '-1d')),

TD_TIME_ADD(TD_SCHEDULED_TIME(), '-30d'),
にするとできる。

◇参照URL

TD_DATE_TRUNCの詳細については下記参照
http://qiita.com/KamekoKameKame/items/11b9b16806754cb44ddf

その他の定義関数については下記参照
http://mototeds.blogspot.jp/2016/06/udfsuser-defined-functions.html

0 件のコメント :

コメントを投稿