講座カテゴリ別の累積進捗

上級
ウィンドウ関数

講座カテゴリ別の累積進捗

ウィンドウ関数やサブクエリなど、複雑なSQL構文をマスターする上級問題です。

ブラウザ上でSQLを書いて解いてみましょう

ログインして挑戦できます

ログインして解く

問題文

coursesとenrollmentsを使い、カテゴリごとの累積progressを日付順で集計してください(ウィンドウ関数使用)。

使用テーブルと主な列

  • enrollmentsテーブル: 受講ID(id)、ユーザーID(user_id)、コースID(course_id)、受講日時(enrolled_at)、進捗率(progress)
  • coursesテーブル: コースID(id)、コース名(title)、カテゴリ(category)、レベル(level)

結合のヒント

  • coursesテーブル(エイリアス: c)との結合条件: e.course_id = c.id(enrollments.course_id = courses.id)

取得列: c.category, e.enrolled_at, SUM(e.progress) OVER (PARTITION BY c.category ORDER BY e.enrolled_at ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cumulative_progress

この問題で学べること

  • ウィンドウ関数 の構文・考え方
  • 上級レベルのSQLクエリの書き方
  • ブラウザ上でSQLを実行して即座に結果を確認する練習

使用テーブル

enrollmentscourses

難易度・対象者

難易度上級
カテゴリウィンドウ関数
対象者ウィンドウ関数やサブクエリなど、複雑なSQL構文をマスターする上級問題です。

関連問題


実際にSQLを書いて理解を深めましょう

ブラウザ上で実行できる採点付きSQLエディタで練習できます

ログインして解く
QSQL Quest