diff --git a/v1_apache-hop dash mapping/mil_com/total_registered.busyness(m_c).hpl b/v1_apache-hop dash mapping/mil_com/total_registered.busyness(m_c).hpl index b20c473..ea47a85 100644 --- a/v1_apache-hop dash mapping/mil_com/total_registered.busyness(m_c).hpl +++ b/v1_apache-hop dash mapping/mil_com/total_registered.busyness(m_c).hpl @@ -401,7 +401,7 @@ status_info AS ( r.gender, CASE WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' - ELSE 'ALL' + ELSE 'NOTCONVICT' END AS convicts, 'true' AS registered FROM public.recruits AS r @@ -412,7 +412,9 @@ status_info AS ( AND rh.id in (SELECT recruit_history_id FROM registered) --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) + UNION ALL + SELECT r.id AS recruit_id, -- Проверка на обучение в вузе (есть информация и обучается) @@ -529,7 +531,7 @@ status_info AS ( r.gender, CASE WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' - ELSE 'ALL' + ELSE 'NOTCONVICT' END AS convicts, 'false' AS registered FROM public.recruits AS r @@ -543,28 +545,65 @@ status_info AS ( AND r.current_recruitment_id is null ), summary AS ( + SELECT + si.recruitment_id, + CASE WHEN si.gender = 'MALE' THEN 'M' ELSE 'W' END AS gender, + si.convicts, + si.registered, + + -- Количество людей, которые учатся + COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, + + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, +*/ + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + + -- Общее количество людей + COUNT(si.recruit_id) AS total_people + + FROM status_info si + GROUP BY si.recruitment_id, si.gender, si.convicts, si.registered + + UNION ALL + SELECT si.recruitment_id, CASE WHEN si.gender = 'MALE' THEN 'M' ELSE 'W' END AS gender, - si.convicts, + 'ALL' AS convicts, si.registered, - -- Количество людей, которые учатся (в вузе, колледже или школе) + + -- Количество людей, которые учатся COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, - -- Количество людей, которые работают - COUNT(CASE WHEN is_working OR is_samozanyat OR is_ip OR is_kfh THEN 1 END) AS work, - + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, */ - COUNT(si.recruit_id) - (COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END)+COUNT(CASE WHEN is_working OR is_samozanyat OR is_ip OR is_kfh THEN 1 END)) AS no_info, + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + -- Общее количество людей COUNT(si.recruit_id) AS total_people FROM status_info si - GROUP BY si.recruitment_id, si.gender, si.convicts, si.registered + GROUP BY si.recruitment_id, si.gender, si.registered ), summary_all AS ( SELECT @@ -578,6 +617,20 @@ summary_all AS ( SUM(total_people) AS total_people FROM summary GROUP BY recruitment_id, registered, convicts + + UNION ALL + + SELECT + recruitment_id, + registered, + 'ALL' AS convicts, + 'ALL' AS gender, + SUM(study) AS study, + SUM(work) AS work, + SUM(no_info) AS no_info, + SUM(total_people) AS total_people + FROM summary + GROUP BY recruitment_id, registered ) SELECT current_date AS recording_date,