- With
- org_list as
- (
- Select o_hier.child_organization_id school_id
- from report.organization_hierarchy o_hier
- INNER JOIN dw.dimorganization org on o_hier.child_organization_id =org.organizationid
- Where o_hier.parent_organization_id in ('8a97b09e3abc60e2013ae60bd43e0073','Rlz_RRSQA_New_Data_Dist_Org001','Rlz_RRSQA_New_Data_Dist_Org002','Rlz_RRSQA_New_Data_Dist_Org003','Rlz_RRSQA_New_Data_Dist_Org004','Rlz_RRSQA_New_Data_Dist_Org005','Rlz_RRSQA_New_Data_Dist_Org006','Rlz_RRSQA_New_Data_Dist_Org007','Rlz_RRSQA_New_Data_Dist_Org008','Rlz_RRSQA_New_Data_Dist_Org009','Rlz_RRSQA_New_Data_Dist_Org010','Rlz_RRSQA_New_Data_Dist_Org011','Rlz_RRSQA_New_Data_Dist_Org012','Rlz_RRSQA_New_Data_Dist_Org013','Rlz_RRSQA_Rub_Dist_Org001','Rlz_RRSQA_Rub_Dist_Org002','Rlz_RRSQA_Rub_Dist_Org003')
- and o_hier.child_organization_type='SCHOOL'
- )
- ,login_data as
- (
- Select org_list.school_id,login.user_id ,sum(login.measure_login_count)login_count
- from org_list
- LEFT OUTER JOIN report.summary_logins login on org_list.school_id=login.school_id
- and login.district_id in ('8a97b09e3abc60e2013ae60bd43e0073','Rlz_RRSQA_New_Data_Dist_Org001','Rlz_RRSQA_New_Data_Dist_Org002','Rlz_RRSQA_New_Data_Dist_Org003','Rlz_RRSQA_New_Data_Dist_Org004','Rlz_RRSQA_New_Data_Dist_Org005','Rlz_RRSQA_New_Data_Dist_Org006','Rlz_RRSQA_New_Data_Dist_Org007','Rlz_RRSQA_New_Data_Dist_Org008','Rlz_RRSQA_New_Data_Dist_Org009','Rlz_RRSQA_New_Data_Dist_Org010','Rlz_RRSQA_New_Data_Dist_Org011','Rlz_RRSQA_New_Data_Dist_Org012','Rlz_RRSQA_New_Data_Dist_Org013','Rlz_RRSQA_Rub_Dist_Org001','Rlz_RRSQA_Rub_Dist_Org002','Rlz_RRSQA_Rub_Dist_Org003')
- INNER JOIN report.dim_date dd ON login.date_id = dd.date_id
- where ((( dd.date_value ) >= (TIMESTAMP '2019-08-01') AND ( dd.date_value ) < (TIMESTAMP '2020-07-30')))
- group by org_list.school_id,login.user_id
- )
- ,class_list as
- (
- Select distinct classid class_id,cls.classtitle class_name, cls.organizationid school_id
- ,contentcontainerid product_id
- from org_list org
- INNER JOIN dw.dimclass cls on org.school_id=cls.organizationid
- INNER JOIN dw.DimClassProductAssociation cpa on cls.ClassID = cpa.organizationid
- where cpa.OrganizationType = 'class' and cpa.ContainerType= 'product'
- AND cls.intpartnerid in (Select integrationpartnername from etl.integrationpartner where integrationpartnerid =7)
- AND cpa.intpartnerid =cls.intpartnerid
- AND
- 1=1
- )
- ,distinct_class_list as
- (
- Select class_id, school_id
- from class_list
- group by class_id, school_id
- )
- ,class_enr as
- (
- select cl.school_id,cl.class_id,count(distinct(ue.user_id))enrolled_Students
- from distinct_class_list cl
- left outer join report.dim_class_student_enrollment ue on cl.class_id=ue.class_id
- group by cl.school_id,cl.class_id
- )
- ,class_active_cnts as
- (
- select cl.school_id,cl.class_id,count(distinct(ld.user_id))active_Students,sum(ld.login_count) total_logins
- from distinct_class_list cl
- left outer join report.dim_class_student_enrollment ue on cl.class_id=ue.class_id
- left outer join login_data ld on cl.school_id =ld.school_id and ue.user_id=ld.user_id
- group by cl.school_id,cl.class_id
- )
- ,class_teacher as
- (
- Select cl.school_id,cl.class_id,cl.class_name,cl.product_id,enr.user_id teacher_id, usr.fullname_decrypted teacher_name
- from class_list cl
- left outer join report.dim_class_teacher_enrollment enr on cl.class_id=enr.class_id and enr.is_latest is true
- left outer join dw.dimuser usr on usr.userid=enr.user_id
- )
- Select cl.school_id,cl.class_id ,cl.class_name, cl.teacher_id, cl.teacher_name
- ,listagg(distinct isnull(rumbaproducttitle,product_id),' , ') within group (order by rumbaproducttitle) product_name
- ,c_enr.enrolled_students
- ,cl_act.active_students
- ,isnull(cl_act.total_logins,0)total_logins
- ,isnull((cl_act.total_logins/cl_act.active_students),0) avg_login_per_student
- from class_teacher cl
- inner join class_enr c_enr on cl.school_id=c_enr.school_id and cl.class_id=c_enr.class_id
- inner join class_active_cnts cl_act on cl.school_id=cl_act.school_id and cl.class_id=cl_act.class_id
- left outer join nexgen.dimrumbaproduct prd on cl.product_id=prd.rumbaproductid
- group by cl.school_id,cl.class_id,cl.class_name, cl.teacher_id, cl.teacher_name ,c_enr.enrolled_students ,cl_act.active_students
- ,cl_act.total_logins