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,
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,