BEGIN; CREATE MATERIALIZED VIEW platform_summary AS SELECT (SELECT COUNT(*) FROM users) AS total_users, (SELECT COUNT(*) FROM courses) AS total_courses, (SELECT COUNT(*) FROM lessons) AS total_lessons, (SELECT COUNT(DISTINCT user_id) FROM lesson_views) AS users_with_views, ROUND( (SELECT COUNT(*)::DECIMAL FROM lessons) / NULLIF((SELECT COUNT(DISTINCT course_id) FROM lessons), 0), 2 ) AS avg_lessons_per_course, ROUND( (SELECT COUNT(*)::DECIMAL FROM lesson_views) / NULLIF((SELECT COUNT(DISTINCT lesson_id) FROM lesson_views), 0), 2 ) AS avg_views_per_lesson; COMMIT;