From aaef8066304218d3e39d1e1e72dd832e46032de5 Mon Sep 17 00:00:00 2001 From: George Date: Sat, 13 Dec 2025 22:06:10 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D1=83=20=D0=BD=D0=B0?= =?UTF-8?q?=20null=20=D0=B2=20=D0=B4=D0=B2=D0=B5=20=D0=B4=D0=B0=D1=82?= =?UTF-8?q?=D0=B0=D0=BC=D0=B0=D1=80=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gmokrousov/postgresql/DM_platform_summary.sql | 4 ++-- gmokrousov/postgresql/DM_user_activity_summary.sql | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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