С
Size: a a a
С
С
H
select id,
status,
code,
LAG(code,1) OVER (
ORDER BY code
) prev_code,
LAG(code,1) OVER (
ORDER BY code
) prev_code,
LEAD(code,1) OVER (
ORDER BY code
) next_code,
LAG(status,1) OVER (
ORDER BY code
) prev_status
from test,
where status = 'OK'
and prev_status = 'neOK'
and code = prev_code
and code != next_code
```WITH deliveries AS (
SELECT
h.route_id AS routeID,
h.delivery_id AS deliveryID,
h.change_date_time AS changeTime,
LAG(h.delivery_status,1) OVER (PARTITION BY h.delivery_id ORDER BY h.change_date_time) prevStatus,
h.delivery_status AS currStatus
FROM public.delivery_status_history h
WHERE h.delivery_status = 'DELIVERED'
OR h.delivery_status = 'PARTIALLYDELIVERED'
)
SELECT * FROM deliveries d
WHERE d.currStatus = 'PARTIALLYDELIVERED'
AND d.prevStatus = 'DELIVERED'
Почему WITH? - функции используемые в селекте вычисляются после выполнения всех условий, т.е. мы в селекте не можем вычислить какую-то функцию, а затем использовать её в условииKM
С
С
ЗА
WITH deliveries AS (
SELECT
h.route_id AS routeID,
h.delivery_id AS deliveryID,
h.change_date_time AS changeTime,
LAG(h.delivery_status,1) OVER (PARTITION BY h.delivery_id ORDER BY h.change_date_time) prevStatus,
h.delivery_status AS currStatus
FROM public.delivery_status_history h
WHERE h.delivery_status = 'DELIVERED'
OR h.delivery_status = 'PARTIALLYDELIVERED'
)
SELECT * FROM deliveries d
WHERE d.currStatus = 'PARTIALLYDELIVERED'
AND d.prevStatus = 'DELIVERED'
Почему WITH? - функции используемые в селекте вычисляются после выполнения всех условий, т.е. мы в селекте не можем вычислить какую-то функцию, а затем использовать её в условииS
H
H
KM
С
СМ
KM
СМ
СМ
СМ
СМ
KM
KM