fix busyness

This commit is contained in:
Ruslan 2025-03-17 15:54:04 +03:00
parent 82cbd45c99
commit 87c671c39b

View file

@ -401,7 +401,7 @@ status_info AS (
r.gender, r.gender,
CASE CASE
WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT'
ELSE 'ALL' ELSE 'NOTCONVICT'
END AS convicts, END AS convicts,
'true' AS registered 'true' AS registered
FROM public.recruits AS r FROM public.recruits AS r
@ -412,7 +412,9 @@ status_info AS (
AND rh.id in (SELECT recruit_history_id FROM registered) AND rh.id in (SELECT recruit_history_id FROM registered)
--and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true'
AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids)
UNION ALL UNION ALL
SELECT SELECT
r.id AS recruit_id, r.id AS recruit_id,
-- Проверка на обучение в вузе (есть информация и обучается) -- Проверка на обучение в вузе (есть информация и обучается)
@ -529,7 +531,7 @@ status_info AS (
r.gender, r.gender,
CASE CASE
WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT'
ELSE 'ALL' ELSE 'NOTCONVICT'
END AS convicts, END AS convicts,
'false' AS registered 'false' AS registered
FROM public.recruits AS r FROM public.recruits AS r
@ -543,28 +545,65 @@ status_info AS (
AND r.current_recruitment_id is null AND r.current_recruitment_id is null
), ),
summary AS ( 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 SELECT
si.recruitment_id, si.recruitment_id,
CASE CASE
WHEN si.gender = 'MALE' THEN 'M' WHEN si.gender = 'MALE' THEN 'M'
ELSE 'W' ELSE 'W'
END AS gender, END AS gender,
si.convicts, 'ALL' AS convicts,
si.registered, 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_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(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 COUNT(si.recruit_id) AS total_people
FROM status_info si 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 ( summary_all AS (
SELECT SELECT
@ -578,6 +617,20 @@ summary_all AS (
SUM(total_people) AS total_people SUM(total_people) AS total_people
FROM summary FROM summary
GROUP BY recruitment_id, registered, convicts 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 SELECT
current_date AS recording_date, current_date AS recording_date,