演習課題「ユーザーの財務状況をクロス集計する」
右側のコードエリアのSQLは、サンプルデータベースのeventlogテーブルから、userIDと所持金をfinanceというカラムに分類して、下記のようにサブクエリで表示します。
- 所持金が3000以上 : 大金持ち
- 所持金が1000以上 : 小金持ち
- 所持金が1000未満 : 発展途上
外側のSQLに「大金持ち」「小金持ち」「発展途上」というカラムを追加して、クロス集計表を作ってください。
コードを実行して、エラーが出なければ、演習課題クリアです!
入力される値
データベースに格納されているデータは、本レッスンのチャプター01を参照してください。
期待する出力値
日付 | 大金持ち | 小金持ち | 発展途上 |
---|---|---|---|
201502 | 2 | 2 | 6 |
201503 | 1 | 8 | 10 |
201504 | 0 | 8 | 10 |
※paizaに会員登録すると無料で動画学習コンテンツをご利用いただけます
会員登録する
#10:クロス集計してみよう
ここでは、オンラインRPGのイベントログから、クロス集計表を作ります。SQLでクロス集計を作るには、これまで学習してきた、サブクエリやCASEといった、いくつかのテクニックを組み合わせる必要があります。
1. クロス集計の元になるデータを用意する
2. サブクエリとして読み込む
3. CASEで、特定の値だったら1にする。このとき別名を、特定の値と同じにするCASE WHEN クラス = "初級" THEN 1 ELSE NULL END AS "初級",
CASE WHEN クラス = "中級" THEN 1 ELSE NULL END AS "中級",
CASE WHEN クラス = "上級" THEN 1 ELSE NULL END AS "上級"
4. SUM関数とGROUP BYで集計する
MySQLでクロス集計してみた | トーハム紀行
http://torhamzedd.blogspot.jp/2010/06/mysql.html
ログインすると採点できます
コードの実行