LoginSignup
0
0

More than 3 years have passed since last update.

SQL腕試し問題を解く 入会者数と退会者数を日付ごとに集計するSQL(応用編)

Last updated at Posted at 2019-09-28

はじめに

SQL腕試し問題(応用編)を解いてみました。
その日時点での会員数を表示させます。
https://qiita.com/jnchito/items/1d21fa3970b3c76bee43

僕の解答例

こんな感じで作ってみました。
https://github.com/kyotom/SQL/blob/master/gistfile3.sql

会員数も相関サブクエリを使って算出しました。
ただし、left_onにNULLがあると日付計算が正しく算出されないため、
COALESCE関数を使って、なんとか回避しました。

(例)
2014年8月3日に入会し、現在も入会している会員がいる。
この会員のjoined_onは2014年8月3日だが、left_onはNULLとなる。
このデータに対して
「CASE WHEN '2014-08-03'::date <= left_on THEN 1 ELSE 0 END」
を実行すると判定値は0を返す。

(対処法)
left_onにNULLが格納されている場合は「3000年1月1日」に置き換えて、日付計算させた。

補足

実行環境:PostgreSQL 11.4

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0