Mercurial > gemma
annotate schema/updates/1454/01.add_hm_to_report_views.sql @ 5666:37c2354a6024 clickable-links
Render links only to known bottlenecks
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Tue, 05 Dec 2023 15:34:31 +0100 |
parents | fbad74acd23f |
children |
rev | line source |
---|---|
5401
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
1 -- Materialized Views with statistical data for data quality reports |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
2 DROP MATERIALIZED VIEW waterway.dqr_gauge_stats; |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
3 |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
4 CREATE MATERIALIZED VIEW waterway.dqr_gauge_stats AS |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
5 WITH d AS ( SELECT ym::date, d::date |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
6 FROM generate_series( '2019-10-01'::date, |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
7 now() - interval '1 day', |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
8 '1 month'::interval ) ym, |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
9 generate_series( ym, |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
10 ( ym + interval '1 month' |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
11 - interval '1 day'), |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
12 '1 day'::interval ) d ), |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
13 g AS ( SELECT d.ym, d.d AS day, (location).country_code AS cc, |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
14 min((location).hectometre) AS hm, |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
15 objname, array_agg(distinct(location)) AS locations |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
16 FROM waterway.gauges,d |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
17 GROUP BY objname,d.d,(location).country_code,d.ym ), |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
18 measure AS ( |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
19 SELECT g.ym, g.cc, g.hm, g.objname, g.day, |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
20 CASE WHEN count(measure_date) = 0 |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
21 THEN 1 ELSE 0 END AS missing |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
22 FROM g |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
23 LEFT OUTER JOIN waterway.gauge_measurements gm |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
24 ON ARRAY[location] <@ g.locations |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
25 AND g.day <= measure_date |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
26 AND measure_date < (g.day + interval '1 day') |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
27 GROUP BY g.objname,g.day,g.ym,g.cc,g.hm ) |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
28 SELECT cc, ym AS month, objname, hm, sum(missing) AS daynodata |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
29 FROM measure |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
30 GROUP BY cc, ym, objname, hm; |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
31 |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
32 DROP MATERIALIZED VIEW waterway.dqr_bottleneck_stats; |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
33 |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
34 CREATE MATERIALIZED VIEW waterway.dqr_bottleneck_stats AS |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
35 WITH d AS ( SELECT ym::date |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
36 FROM generate_series( '2019-10-01'::date, |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
37 now() - interval '1 day', |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
38 '1 month'::interval ) ym), |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
39 bn AS ( SELECT DISTINCT objnam, responsible_country AS cc, |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
40 min ((lower(stretch)).hectometre) AS hm |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
41 FROM waterway.bottlenecks GROUP BY objnam,cc), |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
42 bid AS (SELECT objnam, array_agg(distinct(bottleneck_id)) AS ids |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
43 FROM waterway.bottlenecks GROUP BY objnam) |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
44 SELECT bn.cc, bn.hm, d.ym AS month, bid.objnam, |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
45 COALESCE(count(distinct(sr.date_info)),0) AS srcnt, |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
46 COALESCE(count(distinct(efa.measure_date)),0) AS fwacnt |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
47 FROM bn, bid |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
48 CROSS JOIN d |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
49 LEFT OUTER JOIN waterway.sounding_results sr |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
50 ON ARRAY[sr.bottleneck_id] <@ bid.ids |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
51 AND d.ym <= sr.date_info |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
52 AND sr.date_info < (d.ym + interval '1 month') |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
53 LEFT OUTER JOIN waterway.fairway_availability fa |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
54 ON ARRAY[fa.bottleneck_id] <@ bid.ids |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
55 LEFT OUTER JOIN waterway.effective_fairway_availability efa |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
56 ON fairway_availability_id = fa.id |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
57 AND d.ym <= efa.measure_date |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
58 AND efa.measure_date < (d.ym + interval '1 month') |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
59 AND efa.measure_type = 'Measured' |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
60 WHERE bid.objnam = bn.objnam |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
61 GROUP BY bn.cc, bn.hm, d.ym, bid.objnam; |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
62 |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
63 -- Refresh access rights! |
fbad74acd23f
Sort BN and WG in reports by river hectometre.
Sascha Wilde <wilde@sha-bang.de>
parents:
diff
changeset
|
64 GRANT SELECT on ALL tables in schema waterway TO waterway_user; |