PostgreSQL获取每天的平均、最小、最大延迟值

PostgreSQL获取每天的平均、最小、最大延迟值,sql,postgresql,Sql,Postgresql,我有一个PostgreSQL表,显示周期(日期-时间),以15秒的增量开始,例如从 2020-03-27 00:00:00 到 每天都是一样的 2020-03-28 00:00:00 到 这些15秒的增量中的每一个都显示一个数值:延迟\我们 我想在一个单独的列中获得每天的平均值、最小值、最大值。我该怎么做 这是我的选择查询 create view s3fstj.pc_latency as select TO_TIMESTAMP(start_time, 'YYYY/MM/DD HH24:MI

我有一个PostgreSQL表,显示周期(日期-时间),以15秒的增量开始,例如从

2020-03-27 00:00:00

每天都是一样的

2020-03-28 00:00:00

这些15秒的增量中的每一个都显示一个数值:延迟\我们

我想在一个单独的列中获得每天的平均值、最小值、最大值。我该怎么做

这是我的选择查询

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

我还将句点字符串转换为时间戳。

您将使用窗口函数:

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

是否也可以在每次增量之间获得30分钟的平均值、最小值、最大值?比如一整天的平均值、最小值、最大值在14:00:00-14:30:00、15:00:00-15:30:00之间?@Trunks。你应该用样本数据和期望的结果提出新问题。
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
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