Как в PostgreSQL одновременно использовать две агрегатные функции?

Рейтинг: 0Ответов: 1Опубликовано: 20.04.2023

Подскажите пожалуйста по вопросу :

Как получить результат в сочетании двух агрегатных функций "AVG" И "MIN" ?

(по отдельности работают, а как их слепить вместе хз )

Сейчас мой SQL запрос выглядит так :

(он находит время, за которое был оставлен первый комментарий в задаче с "MIN", но без "AVG")

select jiraissue.pkey , min(age(jiraaction.created, jiraissue.created))as first_time_response -- Время первого ответа
from jiraaction 
inner join jiraissue on jiraaction.issueid = jiraissue.id 
where jiraissue.pkey like '%JIRA-%'
and author = 'JIRAUSER'
and (jiraissue.created between (date_trunc('month', now())::date ) and now()::date) --Тикеты созданные за текущий месяц  и прокомментированные автором

group by jiraissue.pkey
order by first_time_response asc

Любая помощь важна! Спасибо.

Ответы

▲ 0Принят

Получилось! Статья по CTE (или Обобщённое табличное выражение)
https://sql-academy.org/ru/guide/operator-with

Мои итоговый SQL запрос выглядит так :

with My_request as

(select jiraissue.pkey ,jiraaction.author, min(age(jiraaction.created, jiraissue.created))as first_time_response -- Время первого ответа
from jiraaction 
inner join jiraissue on jiraaction.issueid = jiraissue.id 
where jiraissue.pkey like '%TPAGENT-%'
and author = 'd.semushkin'
and (jiraissue.created between (date_trunc('month', now())::date ) and now()::date) --Тикеты созданные за текущий месяц  и прокомментированные автором
group by jiraissue.pkey,jiraaction.author
order by first_time_response asc)

select avg(sum_first_t_r)*60 as avg_time_response --  Среднее время ответа в минутах
from (select pkey, (sum(first_time_response)) as sum_first_t_r
from My_request
group by pkey) as table_avg