REG_IDrecruitment_id=gender"all_M_W"=registeredregistered=studystudyYworkworkYstudy_percentstudy_percentYwork_percentwork_percentYrecruitment_idrecruitment_idNregisteredregisteredN"all_M_W"genderNnot_worknot_workYnot_work_percentnot_work_percentYbusynesstotal_peopleY1024576YSelect values 3 2 2SelectValuesY1noneNREG_IDREG_IDString-2-2falsefalseVK_ARRAYVK_ARRAYString-2-2falsefalse784256YSelect values 3 2 2 2SelectValuesY1noneNREG_IDREG_IDString-2-2falsefalseVK_ARRAYVK_ARRAYString-2-2falsefalse784352YSelect values 3 2 2 3SelectValuesY1noneNREG_IDREG_IDString-2-2falsefalseVK_ARRAYVK_ARRAYString-2-2falsefalse784448YSelect values 3 2 2 4SelectValuesY1noneNREG_IDREG_IDString-2-2falsefalseVK_ARRAYVK_ARRAYString-2-2falsefalse768608YSelect values 3 2 2 5SelectValuesY1noneNREG_IDREG_IDString-2-2falsefalseVK_ARRAYVK_ARRAYString-2-2falsefalse784704YSelect values 3 2 2 6SelectValuesY1noneNREG_IDREG_IDString-2-2falsefalseVK_ARRAYVK_ARRAYString-2-2falsefalse784800YTable 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 is not null
),
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;0NYN400224YTable 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' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null
),
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,
'false' 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;0NYN400576YTable 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 is not null
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;0NYN400416YTable 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' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null
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,
'false' 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;0NYN400768YTable 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 is not null
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;0NYN400320YTable 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' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null
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,
'false' 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;0NYN400672YN