BigQuery SQL

【BigQuery】日ごとのログインユーザー(DAU)をGROUP BYで集計する

この記事は約2分で読めます。

 

GROUP BYで日ごとのユーザーを集計する

 

テーブル名:login_table

user_id timestamp
101  2019-01-01 00:10:00
101  2019-01-02 12:00:00
102  2019-01-01 13:00:00
102  2019-01-02 10:00:00
102  2019-01-02 18:00:00
103  2019-01-03 10:00:00
104  2019-01-04 10:00:00
105  2019-01-05 10:00:00
106  2019-01-01 14:00:00

 

 

-- 日ごとのユーザー数を集計する
SELECT
  DATE(timestamp) AS login_date,
  COUNT(DISTINCT user_id)
FROM
  login_table
GROUP BY
  login_date

 

注意点はログインデータがタイムスタンプになっている場合、日付に直すためにDATE()を使っている点、これによって内部上は2019-01-02 12:00:00→2019-01-02 という形に変換されている。そしてGROUP BYのキーはメイン句で整形した列データを用いることが可能なところもポイント。

 

最後に日付ごとに集計して各日のログインユーザー数をCOUNT()で集計する。この際同じ日に複数回ログインしているユーザーが重複して集計されてしまうので、DISTINCTで重複排除している

 

 

スポンサーリンク
スポンサーリンク

終わり

 

ちなみに分析用SQLの話だと↓の参考書が非常に役立っているので、UDFとか分析関数とか使うような業務をされている人には非常にオススメです。

 

 

 

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

タイトルとURLをコピーしました