3. BigQueryで月曜から日曜までの週毎で集計したい場合の日付指定方法
Googleアナリティクスなどのデータを月曜から日曜までの週毎(ISOWEEK)で集計したい際、どのように日付指定するべきかをこの記事では説明します。
2022/08/31(月)にクエリが実行された場合の例を説明します。
パターン1:DATE_TRUNCを用いて先週の日付を指定する方法
DECLARE firstDate, lastDate DATE;
SET firstDate = DATE_TRUNC(DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 7 DAY), WEEK(MONDAY));
SET lastDate = DATE_ADD(firstDate, INTERVAL 6 DAY);
SELECT CURRENT_DATE('Asia/Tokyo'), firstDate, lastDate
実行結果
DATE_TRUNC(DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 7 DAY), WEEK(MONDAY)) で前週の月曜日を指定しています。
例:DATE_TRUNC(DATE("2022-08-31"), WEEK(MONDAY))
DATE_ADD(firstDate, INTERVAL 6 DAY) で前週の月曜日に6日間追加し、日曜日の日付を算出しています。
パターン2:DATE_SUBを用いる方法
基本的にはパターン1の方法をおすすめしますが、別例としてパターン2をご紹介します。
DECLARE firstDate, lastDate DATE;
SET firstDate = DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 7 DAY);
SET lastDate = DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 1 DAY);
SELECT firstDate, lastDate
実行結果
DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 7 DAY) で7日前を指定する方法もあります。
毎週月曜日に定期実行クエリが動く場合、前週の月曜日(7日前)を求める際などに利用できます。
まとめ
ISOWEEKでウィークリーの集計を行いたい際、前週月曜日から日曜日までの日付を求めたい際の方法をご紹介しました。
基本的にはパターン1の方法の利用をおすすめします。
いいなと思ったら応援しよう!
もし気に入っていただけたら、ぜひサポートお願いします!