У меня такой запрос:
select nvl(o.org_id, o.org_name) as organization,
count(distinct c.client_id) as clients,
count(distinct (case when c.delay_days_max>3 then c.client_id end)) as delay_above_3d,
count(distinct c.contact_phone) as contacts,
case when sum(c.max_debt) > 0 then round(sum(case when c.delay_days>3 then c.new_debt else 0 end) / sum(c.max_debt)*100, 2) as delay_rate_above_3d
from organizations o
left join(select cl.client_id, cl.delay_days_max, cl.contact_phone,
r.max_debt, r.delay_days, r.new_debt
from clients_all cl
join reports_all r
on cl.cl.contact_phone = r.contact_phone) c
on c.client_id = o.client_id
group by o.org_id, o.org_name;
На самом деле я пытаюсь создать таблицу c_table
, чтобы сохранить результаты из подзапроса c
выше.Я хочу сохранить уже сгруппированные данные, сгруппированные по client_id
, но когда я пытаюсь это сделать:
create table c_table as
select cl.client_id,
count(cl.delay_days_max) as delay_days_max,
count(cl.contact_phone) as cl.contact_phone,
sum(r.max_debt) as max_debt,
sum(r.delay_days) as delay_days,
max(r.new_debt) as new_debt
from clients_all cl
join reports_all r
on cl.cl.contact_phone = r.contact_phone
group by cl.client_id;
я получаю неправильные результаты расчетов столбцов.Есть ли какие-либо решения для вставки в c_table
допустимых данных, сгруппированных по client_id
?Большое спасибо за любую информацию.