added safety div with nullif

This commit is contained in:
dr0zd
2026-01-06 16:36:58 +07:00
parent c1d1796679
commit 88db25d7d5
3 changed files with 4 additions and 4 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ select
count(distinct e.user_id) as unique_users,
count(distinct l.id) as lessons_count,
count(distinct lv.id) as total_views,
round(count(distinct lv.id)*1.0/count(distinct e.user_id), 2) as avg_views_per_user,
round(count(distinct lv.id)*1.0/nullif(count(distinct e.user_id), 0), 2) as avg_views_per_user,
min(lv.viewed_at) as first_viewed_at,
max(lv.viewed_at) as last_viewed_at
from enrollments e
+2 -2
View File
@@ -4,5 +4,5 @@ select
(select count(id) from courses) as total_courses,
(select count(id) from lessons) as total_lessons,
(select count(distinct user_id) from lessons_views) as users_with_views,
round((select count(id) from lessons)*1.0/(select count(id) from courses), 2) as avg_lessons_per_course,
(select count(id) from lessons_views)*1.0/(select count(id) from lessons)
round((select count(id) from lessons)*1.0/nullif((select count(id) from courses), 0), 2) as avg_lessons_per_course,
round((select count(id) from lessons_views)*1.0/nullif((select count(id) from lessons), 0), 2) as avg_views_per_lesson
@@ -19,7 +19,7 @@ with enrollment_counts as(
group by user_id
order by user_id
), engagment_rate as (
select tl.user_id, round(v.viewed_lessons_count*100.0/total_lessons, 2) as engagment_rate
select tl.user_id, round(v.viewed_lessons_count*100.0/nullif(total_lessons), 2) as engagment_rate
from total_lessons tl
join views v using(user_id)
)