Создал витрину активности юзеров
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
-- Витрина активности пользователей
|
||||
CREATE MATERIALIZED VIEW user_activity_summary as
|
||||
with
|
||||
lessons_cte as (
|
||||
select
|
||||
user_id,
|
||||
count (*) as viewed_lessons_count,
|
||||
max(viewed_at) as last_view,
|
||||
min(viewed_at) as first_view
|
||||
from lesson_views
|
||||
group by user_id
|
||||
),
|
||||
enrollments_cte as (
|
||||
select user_id, count(*) as enrollment_count
|
||||
from enrollments as e
|
||||
group by user_id
|
||||
),
|
||||
engagement_cte as (
|
||||
select user_id, count(*) as possible_lessons
|
||||
from lessons as l
|
||||
join enrollments as en on l.course_id = en.course_id
|
||||
group by user_id
|
||||
)
|
||||
select
|
||||
id as user_id,
|
||||
name,
|
||||
e.enrollment_count,
|
||||
l.viewed_lessons_count,
|
||||
l.last_view,
|
||||
l.first_view,
|
||||
round(l.viewed_lessons_count::decimal * 100 / en.possible_lessons, 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
|
||||
join enrollments_cte as e on u.id = e.user_id;
|
||||
Reference in New Issue
Block a user