継続プランの売上貢献
上級
JOIN + 集計
継続プランの売上貢献
ウィンドウ関数やサブクエリなど、複雑なSQL構文をマスターする上級問題です。
問題文
次に、現在アクティブな会員のプラン別売上貢献を確認します。プランごとの合計支払額と全売上に対する構成比を取得してください。
使用テーブルと主な列
- 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(s.user_id = payments.user_id)
取得列: s.plan, SUM(p.amount) AS total_amount, ROUND(SUM(p.amount) * 100.0 / (SELECT SUM(amount)
この問題で学べること
- JOIN + 集計 の構文・考え方
- 上級レベルのSQLクエリの書き方
- ブラウザ上でSQLを実行して即座に結果を確認する練習
使用テーブル
subscriptionspayments難易度・対象者
難易度上級
カテゴリJOIN + 集計
対象者ウィンドウ関数やサブクエリなど、複雑なSQL構文をマスターする上級問題です。