PostgreSQL每天平均,最小,最大延迟值

时间:2020-05-07 14:16:16

标签: sql postgresql

我有一个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秒的增量中的每一个都显示一个数值: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 个答案:

答案 0 :(得分:2)

您将使用窗口功能:

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
相关问题