Files
homework/skonev/postgresql/dm_platform_summary.sql
T
2025-12-17 14:28:42 +03:00

20 lines
656 B
PL/PgSQL

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;