total_registered.education_level(reg) Y Normal 0 N 1000 100 - 2024/08/02 11:56:22.507 - 2024/08/02 11:56:22.507 Get variables 3 2 Select values 3 2 Y Get variables 3 2 2 Select values 3 2 2 Y Get variables 3 2 2 2 Select values 3 2 2 2 Y Select values 3 2 Insert / update (total_registered.education_level) Y Table input (person_registry) РФ/все Get variables 3 2 Y Table input (person_registry) РФ/мужчины Get variables 3 2 2 Y Table input (person_registry) РФ/женщины Get variables 3 2 2 2 Y Select values 3 2 2 Insert / update (total_registered.education_level) 2 Y Select values 3 2 2 2 Insert / update (total_registered.education_level) 3 Y Get variables 3 2 GetVariable Y 1 none -1 REG_ID -1 none String -1 VK_ARRAY -1 none String 672 192 Get variables 3 2 2 GetVariable Y 1 none -1 REG_ID -1 none String -1 VK_ARRAY -1 none String 672 352 Get variables 3 2 2 2 GetVariable Y 1 none -1 REG_ID -1 none String -1 VK_ARRAY -1 none String 672 512 Insert / update (total_registered.education_level) InsertUpdate Y 1 none 100 ervu-dashboard = recruitment_id REG_ID total_registered education_level
higher higher Y average average_prof Y "all_M_W" gender N only_general only_general Y no_data count_nodata Y higher_percent higher_percentage Y average_percent average_prof_percentage Y only_general_percent only_general_percentage Y no_data_percent count_nodata_percentage Y recruitment_id recruitment_id N education_level total Y
Y 1072 192
Insert / update (total_registered.education_level) 2 InsertUpdate Y 1 none 100 ervu-dashboard = recruitment_id REG_ID total_registered education_level
higher higher Y average average_prof Y "all_M_W" gender N only_general only_general Y no_data count_nodata Y higher_percent higher_percentage Y average_percent average_prof_percentage Y only_general_percent only_general_percentage Y no_data_percent count_nodata_percentage Y recruitment_id recruitment_id N education_level total Y
Y 1072 352
Insert / update (total_registered.education_level) 3 InsertUpdate Y 1 none 100 ervu-dashboard = recruitment_id REG_ID total_registered education_level
higher higher Y average average_prof Y "all_M_W" gender N only_general only_general Y no_data count_nodata Y higher_percent higher_percentage Y average_percent average_prof_percentage Y only_general_percent only_general_percentage Y no_data_percent count_nodata_percentage Y recruitment_id recruitment_id N education_level total Y
Y 1072 512
Select values 3 2 SelectValues Y 1 none N REG_ID REG_ID String -2 -2 false false VK_ARRAY VK_ARRAY String -2 -2 false false 816 192 Select values 3 2 2 SelectValues Y 1 none N REG_ID REG_ID String -2 -2 false false VK_ARRAY VK_ARRAY String -2 -2 false false 816 352 Select values 3 2 2 2 SelectValues Y 1 none N REG_ID REG_ID String -2 -2 false false VK_ARRAY VK_ARRAY String -2 -2 false false 816 512 Table input (person_registry) РФ/все TableInput Y 1 none ervu_person_registry N 0 WITH total_count AS ( SELECT CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(*) END AS total 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 ( '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR r.target_recruitment_id = ANY ( string_to_array( trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' )::uuid[] ) ) ), education_status AS ( SELECT ri.id, -- Высшее образование (российское или иностранное) ( EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array' AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') ) OR EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array' AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') ) ) AS has_higher, -- Среднее профессиональное образование (если нет высшего) ( EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array' AND education->>'kodUrObr' = '10' ) OR EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array' AND education->>'kodUrObr' = '10' ) ) AS has_average_prof, -- Общее образование (если нет высшего и среднего) ( EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array' AND education->>'kodUrObr' IN ('7', '9') ) OR EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array' AND education->>'kodUrObr' IN ('7', '9') ) ) AS has_only_general, -- Нет данных об образовании (российское или иностранное) ( NOT ( ( EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array' ) OR EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array' ) ) ) AND ( ri.info->'svedRObr'->>'prOtsRObr' = '1' OR ri.info->'svedInObr'->>'prOtsInObr' = '1' ) ) AS has_no_data 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 ( '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR r.target_recruitment_id = ANY ( string_to_array( trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' )::uuid[] ) ) ), final_counts AS ( SELECT COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata FROM education_status ) SELECT 'ALL' AS gender, '${REG_ID}' AS recruitment_id, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE higher END AS higher, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE average_prof END AS average_prof, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE only_general END AS only_general, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE count_nodata END AS count_nodata, total_count.total, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) END AS higher_percentage, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) END AS average_prof_percentage, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) END AS only_general_percentage, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) END AS count_nodata_percentage FROM final_counts, total_count; Y 400 192 Table input (person_registry) РФ/женщины TableInput Y 1 none ervu_person_registry N 0 WITH total_count AS ( SELECT CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(*) END AS total FROM public.recruits_info ri JOIN public.recruits r ON ri.recruit_id = r.id WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' AND r.gender = 'FEMALE' AND r.current_recruitment_id IS NOT NULL AND ( '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR r.target_recruitment_id = ANY ( string_to_array( trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' )::uuid[] ) ) ), education_status AS ( SELECT ri.id, -- Высшее образование (российское или иностранное) ( EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array' AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') ) OR EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array' AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') ) ) AS has_higher, -- Среднее профессиональное образование (если нет высшего) ( EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array' AND education->>'kodUrObr' = '10' ) OR EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array' AND education->>'kodUrObr' = '10' ) ) AS has_average_prof, -- Общее образование (если нет высшего и среднего) ( EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array' AND education->>'kodUrObr' IN ('7', '9') ) OR EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array' AND education->>'kodUrObr' IN ('7', '9') ) ) AS has_only_general, -- Нет данных об образовании (российское или иностранное) ( NOT ( ( EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array' ) OR EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array' ) ) ) AND ( ri.info->'svedRObr'->>'prOtsRObr' = '1' OR ri.info->'svedInObr'->>'prOtsInObr' = '1' ) ) AS has_no_data FROM public.recruits_info ri JOIN public.recruits r ON ri.recruit_id = r.id WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' AND r.gender = 'FEMALE' AND r.current_recruitment_id IS NOT NULL AND ( '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR r.target_recruitment_id = ANY ( string_to_array( trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' )::uuid[] ) ) ), final_counts AS ( SELECT COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata FROM education_status ) SELECT 'W' AS gender, '${REG_ID}' AS recruitment_id, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE higher END AS higher, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE average_prof END AS average_prof, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE only_general END AS only_general, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE count_nodata END AS count_nodata, total_count.total, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) END AS higher_percentage, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) END AS average_prof_percentage, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) END AS only_general_percentage, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) END AS count_nodata_percentage FROM final_counts, total_count; Y 432 512 Table input (person_registry) РФ/мужчины TableInput Y 1 none ervu_person_registry N 0 WITH total_count AS ( SELECT CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(*) END AS total FROM public.recruits_info ri JOIN public.recruits r ON ri.recruit_id = r.id WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' AND r.gender = 'MALE' AND r.current_recruitment_id IS NOT NULL AND ( '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR r.target_recruitment_id = ANY ( string_to_array( trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' )::uuid[] ) ) ), education_status AS ( SELECT ri.id, -- Высшее образование (российское или иностранное) ( EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array' AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') ) OR EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array' AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') ) ) AS has_higher, -- Среднее профессиональное образование (если нет высшего) ( EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array' AND education->>'kodUrObr' = '10' ) OR EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array' AND education->>'kodUrObr' = '10' ) ) AS has_average_prof, -- Общее образование (если нет высшего и среднего) ( EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array' AND education->>'kodUrObr' IN ('7', '9') ) OR EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array' AND education->>'kodUrObr' IN ('7', '9') ) ) AS has_only_general, -- Нет данных об образовании (российское или иностранное) ( NOT ( ( EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array' ) OR EXISTS ( SELECT 1 FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array' ) ) ) AND ( ri.info->'svedRObr'->>'prOtsRObr' = '1' OR ri.info->'svedInObr'->>'prOtsInObr' = '1' ) ) AS has_no_data FROM public.recruits_info ri JOIN public.recruits r ON ri.recruit_id = r.id WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' AND r.gender = 'MALE' AND r.current_recruitment_id IS NOT NULL AND ( '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR r.target_recruitment_id = ANY ( string_to_array( trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' )::uuid[] ) ) ), final_counts AS ( SELECT COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata FROM education_status ) SELECT 'M' AS gender, '${REG_ID}' AS recruitment_id, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE higher END AS higher, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE average_prof END AS average_prof, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE only_general END AS only_general, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE count_nodata END AS count_nodata, total_count.total, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) END AS higher_percentage, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) END AS average_prof_percentage, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) END AS only_general_percentage, CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) END AS count_nodata_percentage FROM final_counts, total_count; Y 416 352