Написание SQL-запроса: получение среднего значения в минуту

#sql #postgresql

#sql #postgresql

Вопрос:

Я хочу сделать запрос, получающий среднее созданное значение в минуту. У меня нет никакой идеи, кроме как использовать подзапрос, как показано ниже. Будут ли какие-либо другие способы использования только одного запроса (без подзапроса)

 with item_cnt_per_min as (
    select date_trunc('minute', created), count(*) as cnt
    from item
    where created > '2020-09-21 06:10'
    group by 1
    order by cnt desc
)
select avg(cnt) from item_cnt_per_min
  

Ответ №1:

Среднее созданное значение может быть рассчитано как:

 select count(*) / count(distinct date_trunc('minute', created))
from item 
where created > '2020-09-21 06:10';
  

То есть разделите общее количество на количество минут.