問題 #131上級JOIN + 集計
サブスクリプションと支払いの突合
subscriptionsとpaymentsを使い、ユーザーごとの合計支払額と直近支払日を求め、合計が10000以上のユーザーのみ表示してください。 使用テーブルと主な列: - subscriptionsテーブル: サブスクリプションID(id)、ユーザーID(user_id)、プラン(plan)、ステータス(status)、開始日(started_at)、終了日(ended_at) - paymentsテーブル: 支払いID(id)、ユーザーID(user_id)、金額(amount)、支払い方法(method)、支払日時(paid_at) 結合のヒント: - paymentsテーブル(エイリアス: p)との結合条件: s.user_id = p.user_id(subscriptions.user_id = payments.user_id) 取得列: s.user_id, SUM(p.amount) AS total_amount, MAX(p.paid_at) AS last_paid_at
この問題で学べること
- JOIN + 集計 の構文・考え方
- 上級レベルの SQL クエリの書き方
- ブラウザ上で SQL を実行して即座に結果を確認する練習
使用テーブル
subscriptionspayments難易度・対象者
- 難易度
- 上級
- カテゴリ
- JOIN + 集計
- 対象者
- ウィンドウ関数や CTE など応用構文を学びたい方、複雑な集計に挑戦したい方