SQL問題 会員情報が正しいかどうかのフラグを立てる

問題:nyumon2_ customer2に新しいカラムとして「正しい会員かのフラグ」をカラム名をflagとしてつくる。条件は

  • 年齢は18歳から100歳まで
  • 性別には1または2の値が入っている
  • 過去に購入がある
  • 削除されていない

利用テーブルはnyumon2_customer2 。 使い方はSQL学習用サンプルデータを参照。

flagが立つidは5つ。

解答:idが1,2,4,5,6にflagが立つ。

SELECT *
, CASE WHEN age>=18
AND age <100
AND sex in (1,2)
AND last_date is not null
AND is_deleted is false
THEN 1 else 0 end AS flag
, IF(age>=18 AND age <100 AND sex in (1,2) AND last_date is not null AND is_deleted is false,1,0)
THEN 1 else 0 end AS flag

解説:CASEとIFを使って同じ結果になるように書いた。好みではあるが条件が増えれば増えるほどCASEの方が読みやすいのではないだろうか。解答は1つ1つの条件についてきちんと書ければ問題はないだろう。このように特定の条件を満たしているかどうかでフラグを立てたり、このフラグごとに集計する機会は多い。BIツールでもよく見かける。

SQL問題一覧はこちら

2020年1月15日SQL問題

Posted by shinu