微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 postgresql 中编写每周平均视图

如何解决如何在 postgresql 中编写每周平均视图

我有一个每月分区的表。我写了一个视图,用于在早上 7-9 点和下午 5-8 点取数据,并分别计算早上和晚上的平均值。但是,我需要每周信息。有速度和日期列。根据日期,我想分别取第一周工作日速度平均值和周六周日速度。我需要一个月内所有周的信息。 我的表: enter image description here

列: enter image description here

我的观点:

CREATE OR REPLACE VIEW trafikhz.speed_2021_july
AS SELECT k.objectid,k.yol_tipi,k.road_type,k.speed,k.color,k.created_at,k.saat,CASE
            WHEN k.saat ~~ '17%'::text OR k.saat ~~ '19%'::text OR k.saat ~~ '18%'::text THEN 2
            ELSE 1
        END AS zaman
   FROM ( SELECT speed_202107.objectid,speed_202107.yol_tipi,speed_202107.road_type,speed_202107.speed,speed_202107.color,speed_202107.created_at,split_part(split_part(speed_202107.created_at::character varying::text,' '::text,2),'.'::text,1) AS saat
           FROM speed_202107) k
  WHERE k.saat ~~ '17%'::text OR k.saat ~~ '19%'::text OR k.saat ~~ '18%'::text OR k.saat ~~ '07%'::text OR k.saat ~~ '08%'::text OR k.saat ~~ '09%'::text;

    -- trafikhz.speed_2021_temmuz_ortalama source

CREATE OR REPLACE VIEW trafikhz.speed_2021_july_avg
AS SELECT m."sabah_ortalama_hız",n."aksam_ortalama_hız"
   FROM ( SELECT avg(speed_2021_july.speed) AS "sabah_ortalama_hız"
           FROM speed_2021_july
          WHERE speed_2021_july.zaman = 1) m,( SELECT avg(speed_2021_july.speed) AS "aksam_ortalama_hız"
           FROM speed_2021_july
          WHERE speed_2021_july.zaman = 2) n;

您对解决方案有什么建议吗? 谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。