REG_IDrecruitment_id=studystudyYworkworkYstudy_percentstudy_percentYwork_percentwork_percentYrecruitment_idrecruitment_idNregisteredregisteredN"all_M_W"genderNnot_worknot_workYnot_work_percentnot_work_percentY1072512YSelect values 3 2SelectValuesY1noneNREG_IDREG_IDString-2-2falsefalseVK_ARRAYVK_ARRAYString-2-2falsefalse816192YSelect values 3 2 2SelectValuesY1noneNREG_IDREG_IDString-2-2falsefalseVK_ARRAYVK_ARRAYString-2-2falsefalse816352YSelect values 3 2 2 2SelectValuesY1noneNREG_IDREG_IDString-2-2falsefalseVK_ARRAYVK_ARRAYString-2-2falsefalse816512YTable input (person_registry) РФ/всеTableInputY1noneervu_person_registry-- в json отсутствует инфа об обучении в школе
WITH status_info AS (
SELECT
-- Проверка на обучение в вузе (есть информация и обучается)
(
CASE
WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN
EXISTS (
SELECT 1
FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz
WHERE vuz->>'kodStatus' = '1'
)
ELSE false
END
) AS is_studying_in_vuz,
-- Проверка на обучение в колледже (есть информация и обучается)
(
CASE
WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN
EXISTS (
SELECT 1
FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh
WHERE kolledzh->>'kodStatus' = '1'
)
ELSE false
END
) AS is_studying_in_college,
-- Проверка на работу (есть информация и работает)
(
CASE
WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN
EXISTS (
SELECT 1
FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud
WHERE trud->>'prAktMestRab' = '1'
)
ELSE false
END
) AS is_working,
-- Проверка на отсутствие сведений о вузе
info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz,
-- Проверка на отсутствие сведений о колледже
info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college,
-- Проверка на отсутствие сведений о работе
info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work
FROM public.recruits_info ri
JOIN public.recruits r ON ri.recruit_id = r.id
WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id = any('${VK_ARRAY}')
),
summary AS (
SELECT
-- Количество людей, которые учатся (в вузе или колледже)
COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study,
-- Количество людей, которые работают
COUNT(CASE WHEN is_working THEN 1 END) AS work,
-- Количество людей, которые ни учатся, ни работают
-- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work,
-- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе
COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info,
-- Общее количество людей
COUNT(*) AS total_people
FROM status_info
)
SELECT
'ALL' as gender,
'true' as registered,
'${REG_ID}' as recruitment_id,
study,
work,
0 as not_work,
0 as not_work_percent,
total_people,
-- Процент людей, которые учатся
ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent,
-- Процент людей, которые работают
ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent
-- Процент людей, которые ни учатся, ни работают
-- ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent
-- Процент людей, для которых отсутствуют сведения
-- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent
FROM summary;0NYN432192YTable input (person_registry) РФ/женщиныTableInputY1noneervu_person_registry-- в json отсутствует инфа об обучении в школе
WITH status_info AS (
SELECT
-- Проверка на обучение в вузе (есть информация и обучается)
(
CASE
WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN
EXISTS (
SELECT 1
FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz
WHERE vuz->>'kodStatus' = '1'
)
ELSE false
END
) AS is_studying_in_vuz,
-- Проверка на обучение в колледже (есть информация и обучается)
(
CASE
WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN
EXISTS (
SELECT 1
FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh
WHERE kolledzh->>'kodStatus' = '1'
)
ELSE false
END
) AS is_studying_in_college,
-- Проверка на работу (есть информация и работает)
(
CASE
WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN
EXISTS (
SELECT 1
FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud
WHERE trud->>'prAktMestRab' = '1'
)
ELSE false
END
) AS is_working,
-- Проверка на отсутствие сведений о вузе
info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz,
-- Проверка на отсутствие сведений о колледже
info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college,
-- Проверка на отсутствие сведений о работе
info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work
FROM public.recruits_info ri
JOIN public.recruits r ON ri.recruit_id = r.id
WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id = any('${VK_ARRAY}')
AND gender = 'FEMALE'
),
summary AS (
SELECT
-- Количество людей, которые учатся (в вузе или колледже)
COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study,
-- Количество людей, которые работают
COUNT(CASE WHEN is_working THEN 1 END) AS work,
-- Количество людей, которые ни учатся, ни работают
-- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work,
-- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе
COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info,
-- Общее количество людей
COUNT(*) AS total_people
FROM status_info
)
SELECT
'W' as gender,
'true' as registered,
'${REG_ID}' as recruitment_id,
0 as not_work,
0 as not_work_percent,
study,
work,
total_people,
-- Процент людей, которые учатся
ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent,
-- Процент людей, которые работают
ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent
-- Процент людей, которые ни учатся, ни работают
-- ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent
-- Процент людей, для которых отсутствуют сведения
-- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent
FROM summary;0NYN432512YTable input (person_registry) РФ/мужчиныTableInputY1noneervu_person_registry-- в json отсутствует инфа об обучении в школе
WITH status_info AS (
SELECT
-- Проверка на обучение в вузе (есть информация и обучается)
(
CASE
WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN
EXISTS (
SELECT 1
FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz
WHERE vuz->>'kodStatus' = '1'
)
ELSE false
END
) AS is_studying_in_vuz,
-- Проверка на обучение в колледже (есть информация и обучается)
(
CASE
WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN
EXISTS (
SELECT 1
FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh
WHERE kolledzh->>'kodStatus' = '1'
)
ELSE false
END
) AS is_studying_in_college,
-- Проверка на работу (есть информация и работает)
(
CASE
WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN
EXISTS (
SELECT 1
FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud
WHERE trud->>'prAktMestRab' = '1'
)
ELSE false
END
) AS is_working,
-- Проверка на отсутствие сведений о вузе
info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz,
-- Проверка на отсутствие сведений о колледже
info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college,
-- Проверка на отсутствие сведений о работе
info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work
FROM public.recruits_info ri
JOIN public.recruits r ON ri.recruit_id = r.id
WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id = any('${VK_ARRAY}')
AND gender = 'MALE'
),
summary AS (
SELECT
-- Количество людей, которые учатся (в вузе или колледже)
COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study,
-- Количество людей, которые работают
COUNT(CASE WHEN is_working THEN 1 END) AS work,
-- Количество людей, которые ни учатся, ни работают
-- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work,
-- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе
COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info,
-- Общее количество людей
COUNT(*) AS total_people
FROM status_info
)
SELECT
'M' as gender,
'true' as registered,
'${REG_ID}' as recruitment_id,
0 as not_work_percent,
0 as not_work,
study,
work,
total_people,
-- Процент людей, которые учатся
ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent,
-- Процент людей, которые работают
ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent
-- Процент людей, которые ни учатся, ни работают
-- ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent
-- Процент людей, для которых отсутствуют сведения
-- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent
FROM summary;0NYN432352YN