fix removed_registry
This commit is contained in:
parent
d7f523aef0
commit
e1d0fb102f
1 changed files with 19 additions and 14 deletions
|
|
@ -264,36 +264,47 @@
|
|||
<method>none</method>
|
||||
<schema_name/>
|
||||
</partitioning>
|
||||
<connection>postgres.decision-document-service</connection>
|
||||
<connection>ervu_person_registry</connection>
|
||||
<execute_each_row>N</execute_each_row>
|
||||
<limit>0</limit>
|
||||
<sql>WITH
|
||||
ids AS (
|
||||
SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id
|
||||
),
|
||||
recr AS (
|
||||
SELECT
|
||||
r.id,
|
||||
r.system_pgs_status
|
||||
FROM recruits r
|
||||
WHERE r.system_pgs_status = '1.3'
|
||||
),
|
||||
last_decision AS (
|
||||
SELECT
|
||||
d.recruitment_id,
|
||||
d.recruit_id,
|
||||
d.extra_info,
|
||||
d.created_at,
|
||||
d.type_id
|
||||
d.code
|
||||
FROM (
|
||||
SELECT
|
||||
ROW_NUMBER() OVER (PARTITION BY d.recruit_id ORDER BY d.created_at DESC) AS rn,
|
||||
d.recruitment_id,
|
||||
d.recruit_id,
|
||||
d.extra_info,
|
||||
d.created_at,
|
||||
d.type_id
|
||||
d.type->>'code' AS code
|
||||
FROM decision d
|
||||
WHERE EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год
|
||||
WHERE d.recruitment_id::uuid IN (SELECT recruitment_id FROM ids)
|
||||
AND EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год
|
||||
) d
|
||||
WHERE rn = 1 -- ищем последнее решение для рекрута
|
||||
AND d.code IN ('9', '10')
|
||||
/*FROM decision d
|
||||
WHERE EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год*/
|
||||
),
|
||||
total_info AS (
|
||||
SELECT
|
||||
r.current_recruitment AS recruitment_id,
|
||||
d.recruitment_id,
|
||||
COUNT(*) AS removed_registry,
|
||||
COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') AS age_limit, -- Количество по причине предельный возраст
|
||||
COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') AS death, -- Количество по причине смерть
|
||||
|
|
@ -302,15 +313,9 @@ total_info AS (
|
|||
ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') * 100.0 / NULLIF(COUNT(*), 0), 2) AS age_limit_percent,
|
||||
ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') * 100.0 / NULLIF(COUNT(*), 0), 2) AS death_percent,
|
||||
ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive', 'citizenshipLost')) * 100.0 / NULLIF(COUNT(*), 0), 2) AS other_percent
|
||||
FROM public.recruit AS r
|
||||
JOIN last_decision AS d
|
||||
ON d.recruit_id = r.id
|
||||
JOIN public.decision_type AS dt
|
||||
ON dt.id = d.type_id
|
||||
WHERE r.system_pgs_status = '1.3' AND -- на тесте тушит все результаты (остальные статусы не учитываем)
|
||||
dt.code IN ('9', '10')
|
||||
AND r.current_recruitment::uuid IN (SELECT recruitment_id FROM ids)
|
||||
GROUP BY r.current_recruitment
|
||||
FROM last_decision d
|
||||
JOIN recr AS r ON d.recruit_id = r.id
|
||||
GROUP BY d.recruitment_id
|
||||
)
|
||||
SELECT
|
||||
current_date AS recording_date,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue