diff --git a/gmokrousov/postgresql/DM_platform_summary.sql b/gmokrousov/postgresql/DM_platform_summary.sql index 3ff7377..b1ca532 100644 --- a/gmokrousov/postgresql/DM_platform_summary.sql +++ b/gmokrousov/postgresql/DM_platform_summary.sql @@ -3,7 +3,7 @@ create materialized view platform_summary as lv_stats as ( select count(distinct user_id) as users_with_views, - count(*)::decimal / count(distinct lesson_id) as avg_views_per_lesson + count(*)::decimal / nullif(count(distinct lesson_id), as avg_views_per_lesson from lesson_views ) select @@ -11,7 +11,7 @@ create materialized view platform_summary as total_courses, total_lessons, users_with_views, - round((total_lessons::decimal / total_courses), 2) AS avg_lessons_per_course, + round((total_lessons::decimal / nullif(total_courses, 2)), 2) AS avg_lessons_per_course, round(avg_views_per_lesson, 2) as avg_views_per_lesson from ( diff --git a/gmokrousov/postgresql/DM_user_activity_summary.sql b/gmokrousov/postgresql/DM_user_activity_summary.sql index 3fb3d94..c7bc776 100644 --- a/gmokrousov/postgresql/DM_user_activity_summary.sql +++ b/gmokrousov/postgresql/DM_user_activity_summary.sql @@ -28,7 +28,7 @@ CREATE MATERIALIZED VIEW user_activity_summary as l.viewed_lessons_count, l.last_view, l.first_view, - round(l.viewed_lessons_count::decimal * 100 / en.possible_lessons, 2) as engagement_rate + round(l.viewed_lessons_count::decimal * 100 / nullif(en.possible_lessons, 0), 2) as engagement_rate from users as u join lessons_cte as l on u.id = l.user_id join engagement_cte as en on u.id = en.user_id