PostgreSQL получение среднего, минимального, максимального значения задержки для каждого дня - PullRequest
2 голосов
/ 07 мая 2020

У меня есть таблица PostgreSQL, которая показывает период (дату и время) с 15-секундным приращением, начиная с

2020-03-27 00:00:00

до

2020-03-27 23:59:45

Каждый день идентичен

2020-03-28 00:00:00

до

2020-03-28 23:59:45

Каждое из этих 15-секундных приращений показывает числовое значение c: Latency_us.

enter image description here

Я хотел бы получить средние, минимальные и максимальные значения каждого дня в отдельной колонке. Как я могу это сделать?

Вот мой запрос выбора

create view s3fstj.pc_latency as
select TO_TIMESTAMP(start_time, 'YYYY/MM/DD HH24:MI:SS') as period, epoch, host_name, db_alias, database, db_host, db_host_ip, ip_port, latency_us, pc_domain 
from s3fstj.pc_dblatmonstat_latency

Я также конвертирую строку периода в метку времени.

1 Ответ

2 голосов
/ 07 мая 2020

Вы бы использовали оконные функции:

select TO_TIMESTAMP(start_time, 'YYYY/MM/DD HH24:MI:SS') as period,
       epoch, host_name, db_alias, database, db_host, db_host_ip, ip_port,
       latency_us, pc_domain,
       avg(latency_us) over (partition by start_time::date) as avg_day_latency_us,
       min(latency_us) over (partition by start_time::date) as min_day_latency_us,
       max(latency_us) over (partition by start_time::date) as max_day_latency_us
from s3fstj.pc_dblatmonstat_latency
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...