recruitment_idrecruitment_id=gender"all_M_W"="A"aY"B"bY"C"cY"D"dY"E"eYnopenopeY"A_repcent"a_percentY"B_repcent"b_percentY"C_repcent"c_percentY"D_repcent"d_percentY"E_repcent"e_percentY"all_M_W"genderNrecruitment_idrecruitment_idN1216368YSelect valuesSelectValuesY1noneN992496YSelect values 2SelectValuesY1noneN992592YSelect values 2 2SelectValuesY1noneN992688YTable input (person_registry) РФ/всеTableInputY1nonepostgres.person_registryWITH categorized AS (
SELECT
r.id,
r.gender,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "A")') AS has_A,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "B")') AS has_B,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "C")') AS has_C,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "D")') AS has_D,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "E")') AS has_E
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
),
aggregated AS (
SELECT
'ALL' AS gender,
'00' as recruitment_id,
COUNT(*) FILTER (WHERE NOT has_A AND NOT has_B AND NOT has_C AND NOT has_D AND NOT has_E) AS nope,
COUNT(*) FILTER (WHERE has_A) AS a,
COUNT(*) FILTER (WHERE has_B) AS b,
COUNT(*) FILTER (WHERE has_C) AS c,
COUNT(*) FILTER (WHERE has_D) AS d,
COUNT(*) FILTER (WHERE has_E) AS e,
COUNT(*) AS total
FROM categorized
)
SELECT *,
ROUND((nope * 100.0) / NULLIF(total, 0), 2) AS nope_percent,
ROUND((a * 100.0) / NULLIF(total, 0), 2) AS a_percent,
ROUND((b * 100.0) / NULLIF(total, 0), 2) AS b_percent,
ROUND((c * 100.0) / NULLIF(total, 0), 2) AS c_percent,
ROUND((d * 100.0) / NULLIF(total, 0), 2) AS d_percent,
ROUND((e * 100.0) / NULLIF(total, 0), 2) AS e_percent
FROM aggregated;0NNN592176YTable input (person_registry) РФ/женщиныTableInputY1nonepostgres.person_registryWITH categorized AS (
SELECT
r.id,
r.gender,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "A")') AS has_A,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "B")') AS has_B,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "C")') AS has_C,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "D")') AS has_D,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "E")') AS has_E
FROM public.recruits_info ri
JOIN public.recruits r ON ri.recruit_id = r.id
where r.vu_current_info -> 'isMilitaryRegistered' = 'true' and gender = 'FEMALE' and r.current_recruitment_id is not null and r.target_recruitment_id is not null
),
aggregated AS (
SELECT
'W' AS gender,
'00' as recruitment_id,
COUNT(*) FILTER (WHERE NOT has_A AND NOT has_B AND NOT has_C AND NOT has_D AND NOT has_E) AS nope,
COUNT(*) FILTER (WHERE has_A) AS a,
COUNT(*) FILTER (WHERE has_B) AS b,
COUNT(*) FILTER (WHERE has_C) AS c,
COUNT(*) FILTER (WHERE has_D) AS d,
COUNT(*) FILTER (WHERE has_E) AS e,
COUNT(*) AS total
FROM categorized
)
SELECT *,
ROUND((nope * 100.0) / NULLIF(total, 0), 2) AS nope_percent,
ROUND((a * 100.0) / NULLIF(total, 0), 2) AS a_percent,
ROUND((b * 100.0) / NULLIF(total, 0), 2) AS b_percent,
ROUND((c * 100.0) / NULLIF(total, 0), 2) AS c_percent,
ROUND((d * 100.0) / NULLIF(total, 0), 2) AS d_percent,
ROUND((e * 100.0) / NULLIF(total, 0), 2) AS e_percent
FROM aggregated;0NNN592368YTable input (person_registry) РФ/мужчиныTableInputY1nonepostgres.person_registryWITH categorized AS (
SELECT
r.id,
r.gender,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "A")') AS has_A,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "B")') AS has_B,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "C")') AS has_C,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "D")') AS has_D,
jsonb_path_exists(ri.info, '$.svedVoditUdost.voditUdost.svedKat[*]?(@.kategoriya like_regex "E")') AS has_E
FROM public.recruits_info ri
JOIN public.recruits r ON ri.recruit_id = r.id
where r.vu_current_info -> 'isMilitaryRegistered' = 'true' and gender = 'MALE' and r.current_recruitment_id is not null and r.target_recruitment_id is not null
),
aggregated AS (
SELECT
'M' AS gender,
'00' as recruitment_id,
COUNT(*) FILTER (WHERE NOT has_A AND NOT has_B AND NOT has_C AND NOT has_D AND NOT has_E) AS nope,
COUNT(*) FILTER (WHERE has_A) AS a,
COUNT(*) FILTER (WHERE has_B) AS b,
COUNT(*) FILTER (WHERE has_C) AS c,
COUNT(*) FILTER (WHERE has_D) AS d,
COUNT(*) FILTER (WHERE has_E) AS e,
COUNT(*) AS total
FROM categorized
)
SELECT *,
ROUND((nope * 100.0) / NULLIF(total, 0), 2) AS nope_percent,
ROUND((a * 100.0) / NULLIF(total, 0), 2) AS a_percent,
ROUND((b * 100.0) / NULLIF(total, 0), 2) AS b_percent,
ROUND((c * 100.0) / NULLIF(total, 0), 2) AS c_percent,
ROUND((d * 100.0) / NULLIF(total, 0), 2) AS d_percent,
ROUND((e * 100.0) / NULLIF(total, 0), 2) AS e_percent
FROM aggregated;0NNN592272YN