Я пытаюсь запустить следующий код, но получаю сообщение об ошибке из-за последнего поля в инструкции SELECT, которое содержит как агрегатное условие, так и нормальное условие
trunc (d.ead_date) - trunc (max (d.pickup_date_ts)) AS diff_ead_cpt_max
Ошибка в основном говорит о том, что агрегаты не разрешены в предложении GROUP BY. Если я уберу максимум, тогда он будет работать, но тогда я не получу правильные результаты.
SELECT
w1.physical_country origin_country,
a.leg_warehouse_id lm_warehouse_id,
b.leg_warehouse_id fl_warehouse_id,
c.plane_name,
k.leg_ware,
k.last_ds,
trunc(a.ead_date) ead_date,
max(d.pickup_date_ts) max_cpt,
to_char(max(d.pickup_date_ts),'HH24:MI') max_cpt_time,
trunc(max(d.pickup_date_ts)) max_cpt_date,
trunc(d.ead_date)- trunc(max(d.pickup_date_ts)) AS diff_ead_cpt_max
from
final_leg a
inner join dest_leg b
on a.shipment_id = b.shipment_id and a.route_id = b.route_id
inner join sc_execution_eu.o_detailed_routes_v2 d
on a.shipment_id = d.shipment_id and a.route_id = d.route_id and d.leg_sequence_id = 0
left join plane_leg c
on a.shipment_id = c.shipment_id and a.route_id = c.route_id
left join warehouse_attributes w1
on a.route_warehouse_id = w1.warehouse_id
left join warehouse_attributes w2
on b.leg_warehouse_id = w2.warehouse_id
RIGHT JOIN list_legs_ds k
on a.route_warehouse_id = k.leg_ware AND a.leg_warehouse_id = k.last_ds
group by
1,2,3,4,5,6,7,11