SQLの書き方メモ
獲得所持金が50以上のユーザーだけ表示する。
eventlogテーブルから、userIDの合計の獲得所持金と平均の獲得所持金を表示。
さらに、HAVINGを追加して、合計の獲得所持金が100以上のユーザーだけ取得。
SELECT
eventlog.userID AS "ユーザーID"
,SUM(events.increase_gold) AS "合計"
,AVG(events.increase_gold) AS "平均"
FROM eventlog
INNER JOIN events ON events.eventID = eventlog.eventID
GROUP BY eventlog.userID
HAVING SUM(events.increase_gold) >= 100;
2つの日時の差を求める
目的の期間までの日数を出したりなど、必ず書かなければならないコードですね。
#現在の日時を求める CURRENT_DATE() AS today #現在日時 2021-10-01 play_date #2021-10-06 #2つの日時の間の期間を整数で求める SELECT DATE_DIFF(YEAR, (play_date, today, day) as days_diff +-----------+ | days_diff.| +-----------+ | 5 | +-----------+
差を日で見る場合はdayを。週でみたいなら、WEEKを、ていうふうに変えていきます。
あとこのサイトも参考になりそう。
https://qiita.com/redpanda/items/85c3f83ba95add333b5d
https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions?hl=ja