поправил читаемость

This commit is contained in:
Aysat
2025-11-26 19:27:34 +06:00
parent 47fa72c757
commit 3419651d12
+44 -19
View File
@@ -1,23 +1,48 @@
'''
Требуется написать SQL-запрос, который будет находить ошибки в версионности по ключу employee_id, такие как «дыры» в истории и пересечение версий.
Результатом запроса является список пар employee_id и from_dt, в которых есть ошибка.
Для каждой пары вывести тип ошибки.
Salary
Employee_id Salary_amt From_dt To_dt
1 50 000.000 01.01.2019 01.02.2019
1 70 000.000 01.04.2019 01.01.9999
2 70 000.000 01.01.2019 01.05.2019
2 90 000.000 01.03.2019 01.01.9999
3 45 000.000 01.01.2019 01.01.9999
'''
with base as (
select
employee_id,
to_dt,
from_dt,
lag(to_dt) over (partition by employee_id order by from_dt) lag_to_dt
from abakhytbekuly.salary
select
employee_id,
to_dt,
from_dt,
lag(to_dt) over (partition by employee_id order by from_dt) as lag_to_dt
from
abakhytbekuly.salary
),
error as (
select
employee_id,
from_dt,
case when
lag_to_dt > from_dt then 'пересечение'
when
lag_to_dt < from_dt then 'дыра'
end as status
from base
where lag_to_dt is not null
select
employee_id,
from_dt,
case when
lag_to_dt > from_dt then 'пересечение'
when
lag_to_dt < from_dt then 'дыра'
end
as status
from
base
where
lag_to_dt is not null
)
select *
from error
order by employee_id, from_dt
select
*
from
error
order by
employee_id, from_dt