Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Вопрос с группировкой  [new]
Александр Кузьминов
Member

Откуда:
Сообщений: 17
Добрый день!

Подскажите такой вопрос, есть селект который показывает сколько обращений выполнил сотрудник отдела и в соседнем столбце показывает сколько он выполнил просроченных обращений, не получается настроить группировку столбца с просроченными обращениями (показывает всем сотрудникам одинаковое значение просроченных обращений на весь отдел и не группирует их), подскажите где ошибка?


with recursive serv (title, id) AS (
select
e.title,
ts.id as num,
case when (ts.overduestate_s='e' OR (ts.overduestate_s='a' AND (CURRENT_TIMESTAMP > to_timestamp(ts.overduestate_d/1000)))) then 'Просрочен' else 'Не просрочен' end as cnt
from tbl_servicecall ts
left join tbl_employee e on e.id=ts.solvedbyemployee_id
left join tbl_ou ou on ou.id=e.parent_id
left join tbl_employee e1 on e1.id=ts.resp2line_em
where (ts.datedecision > date_trunc('week', current_date) and ts.state in ('closed', 'resolved'))
and (ou.title like 'Отдел' or ou.title like 'Группа')
Group BY e.title, ts.id
union all
select
e.title,
serv.id+1,
case when (ts.overduestate_s='e' OR (ts.overduestate_s='a' AND (CURRENT_TIMESTAMP > to_timestamp(ts.overduestate_d/1000)))) then 'Просрочен' else 'Не просрочен' end as "Просрочен?"
from tbl_servicecall ts
join serv on ts.number_ = serv.id
left join tbl_employee e on e.id=ts.solvedbyemployee_id
left join tbl_ou ou on ou.id=e.parent_id
left join tbl_employee e1 on e1.id=ts.resp2line_em
where (ts.datedecision > date_trunc('week', current_date) and ts.state in ('closed', 'resolved'))
and (ou.title like 'Отдел' or ou.title like 'Группа')
)
select
distinct serv.title as "ФИО",
count (distinct serv.id) as "Выполненно по SLA",
(select count(id) from serv where serv.cnt='Просрочен') as "C нарушением SLA"
from serv
group by serv.title, "C нарушением SLA"

К сообщению приложен файл. Размер - 30Kb
27 май 21, 08:46    [22327791]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос с группировкой  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4785
Александр Кузьминов,

Скорее всего вам надо что то вида

select
serv.title as "ФИО",
count (distinct serv.id) as "Выполненно по SLA",
count (distinct serv.id) FILTER (WHERE serv.cnt='Просрочен') as "C нарушением SLA"
from serv
group by serv.title



--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
27 май 21, 09:43    [22327808]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос с группировкой  [new]
Александр Кузьминов
Member

Откуда:
Сообщений: 17
Maxim Boguk, Спасибо большое! Помогло
27 май 21, 10:00    [22327816]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить