新・SQL入門編15ドリルのサムネイル
条件に応じて値を変える 4 MySQL編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

注文履歴が ordered テーブルに保存されています。
ordered テーブルの形式は次の通りです。

#カラム名データ型内容
1ordered_id整数 (int)注文の通し番号
2datetime日時 (datetime)注文がおこなわれた日時
3bill整数 (int)注文の合計金額


このお店で注文の合計金額に応じた割引が適用されるキャンペーンが開催されました。500円以上1000円未満の注文は30円引き、1000円以上の注文は80円引きとなります。
テーブルには割引が適用される前の金額が保存されています。全レコードの割引後の合計金額を求めてください。

ヒント



  • CASE WHEN 条件 THEN 値 END:条件に応じてカラムの値を変えることができる
  • WHEN 条件 THEN 値の句は同じCASE式内に複数書くことができる
  • WHEN句の後にELSE 値と続けることで、それまでの条件に合わなかった場合の値を設定できる

  • 解法は複数あります。

    • サブクエリを活用すると集計関数の中身がわかりやすくなるかもしれません。
    • 実はCASE式を集計関数の中に直接書くこともできます。

入力例1
ordered テーブル
ordered_iddatetimebill
12021-12-17 9:31200
22021-12-17 9:46250
32021-12-17 10:91050
.........
出力例1
???
369080

問題一覧へ戻る

  1. paizaトップ
  2. レベルアップ問題集
  3. 新・SQL入門編15ドリル(言語選択)
  4. 問題一覧 MySQL編
  5. 条件に応じて値を変える 4 MySQL編
ページの先頭へ戻る