total_registered.child_minor
Y
Normal
0
N
1000
100
-
2024/08/02 11:56:22.507
-
2024/08/02 11:56:22.507
Table input (person_registry)РФ/женщины
Insert / update (total_registered.child_minor) 3
N
Table input (person_registry)РФ/мужчины
Insert / update (total_registered.child_minor) 2
N
Table input (person_registry)РФ/все
Insert / update (total_registered.child_minor)
N
Get variables 2 2
Select values 2 2
Y
Get variables 2 2 2
Select values 2 2 2
Y
Get variables 2 2 3
Select values 2 2 3
Y
Table input (person_registry)РФ/все
Get variables 2 2
Y
Select values 2 2
Insert / update (total_registered.child_minor)
Y
Table input (person_registry)РФ/мужчины
Get variables 2 2 2
Y
Select values 2 2 2
Insert / update (total_registered.child_minor) 2
Y
Table input (person_registry)РФ/женщины
Get variables 2 2 3
Y
Select values 2 2 3
Insert / update (total_registered.child_minor) 3
Y
Insert / update (total_registered.child_minor)
InsertUpdate
Y
1
none
100
ervu-dashboard
=
recruitment_id
REG_ID
=
"all_M_W"
gender
total_registered
no_child
no_children
Y
"1_child"
one_child
Y
"2_child"
two_children
Y
"3_child"
three_children
Y
"4_more_child"
four_or_more_children
Y
"all_M_W"
gender
N
no_child_percent
no_children_percent
Y
"1_child_percent"
one_child_percent
Y
"2_child_percent"
two_children_percent
Y
"3_child_percent"
three_children_percent
Y
"4_more_child_percent"
four_or_more_children_percent
Y
recruitment_id
recruitment_id
N
N
992
240
Insert / update (total_registered.child_minor) 2
InsertUpdate
Y
1
none
100
ervu-dashboard
=
recruitment_id
REG_ID
=
"all_M_W"
gender
total_registered
no_child
no_children
Y
"1_child"
one_child
Y
"2_child"
two_children
Y
"3_child"
three_children
Y
"4_more_child"
four_or_more_children
Y
"all_M_W"
gender
N
no_child_percent
no_children_percent
Y
"1_child_percent"
one_child_percent
Y
"2_child_percent"
two_children_percent
Y
"3_child_percent"
three_children_percent
Y
"4_more_child_percent"
four_or_more_children_percent
Y
recruitment_id
recruitment_id
N
N
992
336
Insert / update (total_registered.child_minor) 3
InsertUpdate
Y
1
none
100
ervu-dashboard
=
recruitment_id
REG_ID
=
"all_M_W"
gender
total_registered
no_child
no_children
Y
"1_child"
one_child
Y
"2_child"
two_children
Y
"3_child"
three_children
Y
"4_more_child"
four_or_more_children
Y
"all_M_W"
gender
N
no_child_percent
no_children_percent
Y
"1_child_percent"
one_child_percent
Y
"2_child_percent"
two_children_percent
Y
"3_child_percent"
three_children_percent
Y
"4_more_child_percent"
four_or_more_children_percent
Y
recruitment_id
recruitment_id
N
N
992
448
Table input (person_registry)РФ/все
TableInput
Y
1
none
ervu_person_registry
N
0
WITH extracted_children AS (
SELECT
ri.recruit_id,
jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child
FROM
public.recruits_info ri
JOIN public.recruits r ON ri.recruit_id = r.id
WHERE
jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array'
AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null
),
children_birth_dates AS (
SELECT
recruit_id,
(child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day,
(child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month,
(child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year
FROM
extracted_children
),
children_count AS (
SELECT
recruit_id,
COUNT(*) AS children_under_18
FROM
children_birth_dates
WHERE
AGE(make_date(year, month, day)) < interval '18 years'
GROUP BY
recruit_id
),
final_counts AS (
SELECT
COALESCE(children_under_18, 0) AS children_count,
COUNT(*) AS num_people
FROM
public.recruits_info ri
LEFT JOIN
children_count cc ON ri.recruit_id = cc.recruit_id
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
GROUP BY
COALESCE(children_under_18, 0)
),
total_people AS (
SELECT SUM(num_people) AS total_count
FROM final_counts
)
SELECT
'ALL' AS gender,
'${REG_ID}' as recruitment_id,
COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) AS no_children,
COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) AS one_child,
COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) AS two_children,
COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) AS three_children,
COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) AS four_or_more_children,
ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS no_children_percent,
ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS one_child_percent,
ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS two_children_percent,
ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS three_children_percent,
ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS four_or_more_children_percent
FROM
final_counts;
Y
352
240
Table input (person_registry)РФ/женщины
TableInput
Y
1
none
ervu_person_registry
N
0
WITH extracted_children AS (
SELECT
ri.recruit_id,
jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child
FROM
public.recruits_info ri
JOIN public.recruits r ON ri.recruit_id = r.id
WHERE
jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array'
AND r.vu_current_info->>'isMilitaryRegistered' = 'true'
AND r.current_recruitment_id IS NOT NULL
AND r.target_recruitment_id IS NOT NULL
AND r.gender = 'FEMALE'
),
children_birth_dates AS (
SELECT
recruit_id,
(child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day,
(child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month,
(child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year
FROM
extracted_children
),
children_count AS (
SELECT
recruit_id,
COUNT(*) AS children_under_18
FROM
children_birth_dates
WHERE
make_date(year, month, day) > CURRENT_DATE - INTERVAL '18 years'
GROUP BY
recruit_id
),
final_counts AS (
SELECT
COALESCE(children_under_18, 0) AS children_count,
COUNT(*) AS num_people
FROM
public.recruits_info ri
LEFT JOIN
children_count cc ON ri.recruit_id = cc.recruit_id
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 r.gender = 'FEMALE'
GROUP BY
COALESCE(children_under_18, 0)
),
total_men AS (
SELECT
COUNT(*) AS total_men_count
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 r.gender = 'FEMALE'
)
SELECT
'W' AS gender,
'${REG_ID}' AS recruitment_id,
COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) AS no_children,
COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) AS one_child,
COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) AS two_children,
COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) AS three_children,
COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) AS four_or_more_children,
ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS no_children_percent,
ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS one_child_percent,
ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS two_children_percent,
ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS three_children_percent,
ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS four_or_more_children_percent
FROM
final_counts;
Y
352
448
Table input (person_registry)РФ/мужчины
TableInput
Y
1
none
ervu_person_registry
N
0
WITH extracted_children AS (
SELECT
ri.recruit_id,
jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child
FROM
public.recruits_info ri
JOIN public.recruits r ON ri.recruit_id = r.id
WHERE
jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array'
AND r.vu_current_info->>'isMilitaryRegistered' = 'true'
AND r.current_recruitment_id IS NOT NULL
AND r.target_recruitment_id IS NOT NULL
AND r.gender = 'MALE'
),
children_birth_dates AS (
SELECT
recruit_id,
(child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day,
(child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month,
(child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year
FROM
extracted_children
),
children_count AS (
SELECT
recruit_id,
COUNT(*) AS children_under_18
FROM
children_birth_dates
WHERE
make_date(year, month, day) > CURRENT_DATE - INTERVAL '18 years'
GROUP BY
recruit_id
),
final_counts AS (
SELECT
COALESCE(children_under_18, 0) AS children_count,
COUNT(*) AS num_people
FROM
public.recruits_info ri
LEFT JOIN
children_count cc ON ri.recruit_id = cc.recruit_id
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 r.gender = 'MALE'
GROUP BY
COALESCE(children_under_18, 0)
),
total_men AS (
SELECT
COUNT(*) AS total_men_count
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 r.gender = 'MALE'
)
SELECT
'M' AS gender,
'${REG_ID}' AS recruitment_id,
COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) AS no_children,
COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) AS one_child,
COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) AS two_children,
COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) AS three_children,
COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) AS four_or_more_children,
ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS no_children_percent,
ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS one_child_percent,
ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS two_children_percent,
ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS three_children_percent,
ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS four_or_more_children_percent
FROM
final_counts;
Y
352
336
Get variables 2 2
GetVariable
Y
1
none
-1
REG_ID
-1
none
String
-1
VK_ARRAY
-1
none
String
560
272
Select values 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
768
272
Get variables 2 2 2
GetVariable
Y
1
none
-1
REG_ID
-1
none
String
-1
VK_ARRAY
-1
none
String
560
368
Select values 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
768
368
Get variables 2 2 3
GetVariable
Y
1
none
-1
REG_ID
-1
none
String
-1
VK_ARRAY
-1
none
String
560
496
Select values 2 2 3
SelectValues
Y
1
none
N
REG_ID
REG_ID
String
-2
-2
false
false
VK_ARRAY
VK_ARRAY
String
-2
-2
false
false
768
496