20 lines
660 B
SQL
20 lines
660 B
SQL
CREATE MATERIALIZED VIEW platform_summary AS
|
|
|
|
WITH stats AS (
|
|
SELECT
|
|
(SELECT COUNT(*) total_users FROM pet_users pu) AS total_users,
|
|
(SELECT COUNT(*) total_courses FROM pet_courses pc) AS total_courses,
|
|
(SELECT COUNT(*) total_lessons FROM pet_lessons pl) AS total_lessons,
|
|
(SELECT COUNT(DISTINCT user_id) FROM pet_lesson_views plv) AS users_with_views,
|
|
(SELECT COUNT(*) FROM pet_lesson_views plv) AS total_views
|
|
)
|
|
|
|
SELECT
|
|
total_users,
|
|
total_courses,
|
|
total_lessons,
|
|
users_with_views,
|
|
|
|
ROUND((total_lessons * 1.0 / total_courses), 2) AS avg_lessons_per_course,
|
|
ROUND((total_views * 1.0 / total_lessons), 2) AS avg_views_per_lesson
|
|
FROM stats; |