28 lines
1.2 KiB
SQL
28 lines
1.2 KiB
SQL
--show work_mem;
|
|
--explain (analyze, verbose, buffers)
|
|
-- компоненты можно преагрегировать
|
|
select dayscale.dt, w.siv_uid, line_key
|
|
--,sum (c.cost/dayscale.monthdays)
|
|
--, count(*)
|
|
--w.line_key, w.dt_from, w.dt_to, w.line_version, w.agreement_version, w.deal_status_id, w.contract, w.probability_pc
|
|
from
|
|
elma.mv_dt dayscale
|
|
left outer join
|
|
(select * from elma.mv_line i where ) w on dayscale.dt >= w.dt_from
|
|
|
|
elma.mv_line w on (dayscale.dt >= w.dt_from AND w.siv_uid =
|
|
(select siv_uid from elma.mv_line i
|
|
where i.line_key = w.line_key AND dayscale.dt >= i.dt_from
|
|
order by line_version desc, agreement_version desc limit 1)
|
|
)
|
|
--join elma.mv_component c on (w.siv_uid=c.siv_uid)
|
|
--left outer join elma.mv_line b on
|
|
--(w.line_key = b.line_key AND dayscale.dt >= b.dt_from
|
|
--AND b.agreement_version = (select max(agreement_version) from elma.mv_line i where i.line_key = w.line_key AND dayscale.dt >= i.dt_from AND (w.agreement_version>i.agreement_version OR w.agreement_version IS NULL)))
|
|
|
|
where dayscale.dt between '2025-01-01' AND '2025-01-10'
|
|
--AND w.line_key='20241009T112450304'
|
|
--AND b.deal_status_id IN ('5','6')
|
|
--group by dayscale.dt
|
|
order by dayscale.dt
|
|
--limit 100 |