diff schema/reports.sql @ 5420:851c14d57680 marking-single-beam

Merged default into marking-single-beam branch.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 08 Jul 2021 00:14:58 +0200
parents fbad74acd23f
children 47ee6ecf94de
line wrap: on
line diff
--- a/schema/reports.sql	Wed Jul 07 19:24:03 2021 +0200
+++ b/schema/reports.sql	Thu Jul 08 00:14:58 2021 +0200
@@ -23,11 +23,12 @@
                                          - interval '1 day'),
                                      '1 day'::interval ) d ),
      g AS ( SELECT d.ym, d.d AS day, (location).country_code AS cc,
+                   min((location).hectometre) AS hm,
                    objname, array_agg(distinct(location)) AS locations
             FROM waterway.gauges,d
             GROUP BY objname,d.d,(location).country_code,d.ym ),
      measure AS (
-       SELECT g.ym, g.cc, g.objname, g.day,
+       SELECT g.ym, g.cc, g.hm, g.objname, g.day,
               CASE WHEN count(measure_date) = 0
               THEN 1 ELSE 0 END AS missing
          FROM g
@@ -35,21 +36,22 @@
            ON ARRAY[location] <@ g.locations
              AND g.day <= measure_date
              AND measure_date < (g.day + interval '1 day')
-         GROUP BY g.objname,g.day,g.ym,g.cc )
-  SELECT cc, ym AS month, objname, sum(missing) AS daynodata
+         GROUP BY g.objname,g.day,g.ym,g.cc,g.hm )
+  SELECT cc, ym AS month, objname, hm, sum(missing) AS daynodata
     FROM measure
-    GROUP BY cc, ym, objname;
+    GROUP BY cc, ym, objname, hm;
 
 CREATE MATERIALIZED VIEW waterway.dqr_bottleneck_stats AS
 WITH d AS ( SELECT ym::date
               FROM generate_series( '2019-10-01'::date,
                                     now() - interval '1 day',
                                     '1 month'::interval ) ym),
-     bn AS ( SELECT DISTINCT objnam, responsible_country AS cc
-               FROM waterway.bottlenecks ),
+     bn AS ( SELECT DISTINCT objnam, responsible_country AS cc,
+                    min ((lower(stretch)).hectometre) AS hm
+               FROM waterway.bottlenecks GROUP BY objnam,cc),
      bid AS (SELECT objnam, array_agg(distinct(bottleneck_id)) AS ids
                FROM waterway.bottlenecks GROUP BY objnam)
-  SELECT bn.cc, d.ym AS month, bid.objnam,
+  SELECT bn.cc, bn.hm, d.ym AS month, bid.objnam,
          COALESCE(count(distinct(sr.date_info)),0) AS srcnt,
          COALESCE(count(distinct(efa.measure_date)),0) AS fwacnt
     FROM bn, bid
@@ -66,7 +68,7 @@
          AND efa.measure_date < (d.ym + interval '1 month')
          AND efa.measure_type = 'Measured'
     WHERE bid.objnam = bn.objnam
-    GROUP BY bn.cc, d.ym, bid.objnam;
+    GROUP BY bn.cc, bn.hm, d.ym, bid.objnam;
 
 -- We need a wrapper procedure with owner rights for
 -- the refresh, as (from the PGSQL manual): "REFRESH MATERIALIZED VIEW