@golemio/microclimate 1.2.8-dev.1384166512 → 1.2.8-dev.1561229684
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db/migrations/postgresql/sqls/20230110142233-fixed_microclimate_measurement-down.sql +184 -184
- package/db/migrations/postgresql/sqls/20230110142233-fixed_microclimate_measurement-up.sql +208 -208
- package/db/migrations/postgresql/sqls/20230302073548-view-raw-data-down.sql +20 -20
- package/db/migrations/postgresql/sqls/20230302073548-view-raw-data-up.sql +79 -79
- package/db/migrations/postgresql/sqls/20230602112229-new-sensors-down.sql +451 -451
- package/db/migrations/postgresql/sqls/20230602112229-new-sensors-up.sql +164 -164
- package/db/migrations/postgresql/sqls/20230613125038-pp20230613-down.sql +1 -1
- package/db/migrations/postgresql/sqls/20230613125038-pp20230613-up.sql +2 -2
- package/db/migrations/postgresql/sqls/20230615113019-pp20230615-down.sql +66 -66
- package/db/migrations/postgresql/sqls/20230615113019-pp20230615-up.sql +69 -69
- package/db/migrations/postgresql/sqls/20230710061502-pp20230710-down.sql +56 -56
- package/db/migrations/postgresql/sqls/20230710061502-pp20230710-up.sql +56 -56
- package/docs/asyncapi.yaml +89 -0
- package/docs/implementation_documentation.md +2 -0
- package/docs/index.md +3 -0
- package/package.json +1 -1
|
@@ -1,164 +1,164 @@
|
|
|
1
|
-
DROP VIEW analytic.v_microclimate_wind_dir_at_max_speed;
|
|
2
|
-
|
|
3
|
-
DROP VIEW analytic.v_microclimate_measurements_daily_w_hights;
|
|
4
|
-
|
|
5
|
-
DROP VIEW analytic.v_microclimate_measurement_hights;
|
|
6
|
-
|
|
7
|
-
DROP VIEW analytic.v_microclimate_measurements_daily;
|
|
8
|
-
|
|
9
|
-
DROP VIEW analytic.v_microclimate_raw_data;
|
|
10
|
-
|
|
11
|
-
DROP VIEW analytic.v_microclimate_sensor_devices;
|
|
12
|
-
|
|
13
|
-
DROP VIEW microclimate.v_sensor_points;
|
|
14
|
-
|
|
15
|
-
DROP VIEW microclimate.v_sensor_measurements;
|
|
16
|
-
|
|
17
|
-
DROP TABLE microclimate.sensor_devices_import;
|
|
18
|
-
|
|
19
|
-
CREATE TABLE microclimate.sensor_devices_import (
|
|
20
|
-
location_id int4 NULL,
|
|
21
|
-
point_id int4 NULL,
|
|
22
|
-
"location" varchar(50) NULL,
|
|
23
|
-
loc_description varchar(50) NULL,
|
|
24
|
-
loc_orientation varchar(50) NULL,
|
|
25
|
-
loc_surface varchar(50) NULL,
|
|
26
|
-
point_name varchar(50) NULL,
|
|
27
|
-
point_whole_name varchar(50) NULL,
|
|
28
|
-
address varchar(50) NULL,
|
|
29
|
-
sensor_position varchar(50) NULL,
|
|
30
|
-
sensor_position_detail varchar(50) NULL,
|
|
31
|
-
sensor_id varchar(50) NOT NULL,
|
|
32
|
-
data_relevance varchar(50) NULL,
|
|
33
|
-
lat float4 NULL,
|
|
34
|
-
lng float4 NULL,
|
|
35
|
-
air_temp int4 NULL,
|
|
36
|
-
air_hum int4 NULL,
|
|
37
|
-
pressure int4 NULL,
|
|
38
|
-
wind_dir int4 NULL,
|
|
39
|
-
wind_impact int4 NULL,
|
|
40
|
-
wind_speed int4 NULL,
|
|
41
|
-
precip int4 NULL,
|
|
42
|
-
sun_irr int4 NULL,
|
|
43
|
-
soil_temp int4 NULL,
|
|
44
|
-
water_pot int4 NULL,
|
|
45
|
-
dendro_circ int4 NULL,
|
|
46
|
-
dendro_gain int4 NULL,
|
|
47
|
-
data_until varchar(50) NULL,
|
|
48
|
-
CONSTRAINT sensor_devices_import_pkey PRIMARY KEY (sensor_id)
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
CREATE OR REPLACE VIEW microclimate.v_sensor_points
|
|
52
|
-
AS SELECT DISTINCT s.point_id,
|
|
53
|
-
s.point_name,
|
|
54
|
-
s.location_id,
|
|
55
|
-
s.location,
|
|
56
|
-
s.loc_description,
|
|
57
|
-
s.loc_orientation,
|
|
58
|
-
s.loc_surface,
|
|
59
|
-
s.lat,
|
|
60
|
-
s.lng,
|
|
61
|
-
NULL::text AS x_jtsk,
|
|
62
|
-
NULL::text AS y_jtsk,
|
|
63
|
-
NULL::text AS elevation_m,
|
|
64
|
-
s.sensor_position,
|
|
65
|
-
s.sensor_position_detail,
|
|
66
|
-
concat(unpivot.measure, unpivot.height_cm) AS measure,
|
|
67
|
-
CASE
|
|
68
|
-
WHEN unpivot.measure = 'air_temp'::text THEN 'Teplota vzduchu'::text
|
|
69
|
-
WHEN unpivot.measure = 'air_hum'::text THEN 'Vlhkost vzduchu'::text
|
|
70
|
-
WHEN unpivot.measure = 'pressure'::text THEN 'Atmosférický tlak'::text
|
|
71
|
-
WHEN unpivot.measure = 'wind_dir'::text THEN 'Směr větru'::text
|
|
72
|
-
WHEN unpivot.measure = 'wind_impact'::text THEN 'Náraz větru'::text
|
|
73
|
-
WHEN unpivot.measure = 'wind_speed'::text THEN 'Rychlost větru'::text
|
|
74
|
-
WHEN unpivot.measure = 'precip'::text THEN 'Úhrn srážek'::text
|
|
75
|
-
WHEN unpivot.measure = 'sun_irr'::text THEN 'Sluneční záření'::text
|
|
76
|
-
WHEN unpivot.measure = 'soil_temp'::text THEN 'Teplota půdy'::text
|
|
77
|
-
WHEN unpivot.measure = 'water_pot'::text THEN 'Vodní potenciál půdy'::text
|
|
78
|
-
WHEN unpivot.measure = 'dendro_circ'::text THEN 'Obvod stromu'::text
|
|
79
|
-
WHEN unpivot.measure = 'dendro_gain'::text THEN 'Přírůstek obvodu stromu'::text
|
|
80
|
-
ELSE NULL::text
|
|
81
|
-
END AS measure_cz,
|
|
82
|
-
CASE
|
|
83
|
-
WHEN unpivot.measure = 'air_temp'::text THEN '°C'::text
|
|
84
|
-
WHEN unpivot.measure = 'air_hum'::text THEN '%'::text
|
|
85
|
-
WHEN unpivot.measure = 'pressure'::text THEN 'Pa'::text
|
|
86
|
-
WHEN unpivot.measure = 'wind_dir'::text THEN '°'::text
|
|
87
|
-
WHEN unpivot.measure = 'wind_impact'::text THEN 'km/h'::text
|
|
88
|
-
WHEN unpivot.measure = 'wind_speed'::text THEN 'km/h'::text
|
|
89
|
-
WHEN unpivot.measure = 'precip'::text THEN 'mm'::text
|
|
90
|
-
WHEN unpivot.measure = 'sun_irr'::text THEN 'lux'::text
|
|
91
|
-
WHEN unpivot.measure = 'soil_temp'::text THEN '°C'::text
|
|
92
|
-
WHEN unpivot.measure = 'water_pot'::text THEN 'kPa'::text
|
|
93
|
-
WHEN unpivot.measure = 'dendro_circ'::text THEN 'mm'::text
|
|
94
|
-
WHEN unpivot.measure = 'dendro_gain'::text THEN 'µm'::text
|
|
95
|
-
ELSE NULL::text
|
|
96
|
-
END AS unit
|
|
97
|
-
FROM microclimate.sensor_devices_import s,
|
|
98
|
-
LATERAL ( VALUES ('air_temp'::text,s.air_temp), ('air_hum'::text,s.air_hum), ('pressure'::text,s.pressure), ('wind_dir'::text,s.wind_dir), ('wind_impact'::text,s.wind_impact), ('wind_speed'::text,s.wind_speed), ('precip'::text,s.precip), ('sun_irr'::text,s.sun_irr), ('soil_temp'::text,s.soil_temp), ('water_pot'::text,s.water_pot), ('dendro_circ'::text,s.dendro_circ), ('dendro_gain'::text,s.dendro_gain)) unpivot(measure, height_cm)
|
|
99
|
-
WHERE unpivot.height_cm IS NOT NULL
|
|
100
|
-
ORDER BY s.point_id;
|
|
101
|
-
|
|
102
|
-
CREATE OR REPLACE VIEW microclimate.v_sensor_measurements
|
|
103
|
-
AS WITH points_heights AS (
|
|
104
|
-
SELECT s.sensor_id,
|
|
105
|
-
s.point_id,
|
|
106
|
-
s.location_id,
|
|
107
|
-
unpivot.measure,
|
|
108
|
-
unpivot.height_cm,
|
|
109
|
-
CASE
|
|
110
|
-
WHEN unpivot.measure = 'air_temp'::text THEN '°C'::text
|
|
111
|
-
WHEN unpivot.measure = 'air_hum'::text THEN '%'::text
|
|
112
|
-
WHEN unpivot.measure = 'pressure'::text THEN 'Pa'::text
|
|
113
|
-
WHEN unpivot.measure = 'wind_dir'::text THEN '°'::text
|
|
114
|
-
WHEN unpivot.measure = 'wind_impact'::text THEN 'km/h'::text
|
|
115
|
-
WHEN unpivot.measure = 'wind_speed'::text THEN 'km/h'::text
|
|
116
|
-
WHEN unpivot.measure = 'precip'::text THEN 'mm'::text
|
|
117
|
-
WHEN unpivot.measure = 'sun_irr'::text THEN 'lux'::text
|
|
118
|
-
WHEN unpivot.measure = 'soil_temp'::text THEN '°C'::text
|
|
119
|
-
WHEN unpivot.measure = 'water_pot'::text THEN 'kPa'::text
|
|
120
|
-
WHEN unpivot.measure = 'dendro_circ'::text THEN 'mm'::text
|
|
121
|
-
WHEN unpivot.measure = 'dendro_gain'::text THEN 'µm'::text
|
|
122
|
-
ELSE NULL::text
|
|
123
|
-
END AS unit
|
|
124
|
-
FROM microclimate.sensor_devices_import s,
|
|
125
|
-
LATERAL ( VALUES ('air_temp'::text,s.air_temp), ('air_hum'::text,s.air_hum), ('pressure'::text,s.pressure), ('wind_dir'::text,s.wind_dir), ('wind_impact'::text,s.wind_impact), ('wind_speed'::text,s.wind_speed), ('precip'::text,s.precip), ('sun_irr'::text,s.sun_irr), ('soil_temp'::text,s.soil_temp), ('water_pot'::text,s.water_pot), ('dendro_circ'::text,s.dendro_circ), ('dendro_gain'::text,s.dendro_gain)) unpivot(measure, height_cm)
|
|
126
|
-
WHERE unpivot.height_cm IS NOT NULL
|
|
127
|
-
), measurements AS (
|
|
128
|
-
SELECT m.sensor_id,
|
|
129
|
-
m.measured_at,
|
|
130
|
-
unpivot.measure,
|
|
131
|
-
unpivot.value
|
|
132
|
-
FROM microclimate.measurements m,
|
|
133
|
-
LATERAL ( VALUES ('air_temp'::text,m.air_temp), ('air_hum'::text,m.air_hum), ('pressure'::text,m.pressure), ('wind_dir'::text,
|
|
134
|
-
CASE
|
|
135
|
-
WHEN m.wind_dir::text = 'N'::text THEN 0
|
|
136
|
-
WHEN m.wind_dir::text = 'NE'::text THEN 45
|
|
137
|
-
WHEN m.wind_dir::text = 'E'::text THEN 90
|
|
138
|
-
WHEN m.wind_dir::text = 'SE'::text THEN 135
|
|
139
|
-
WHEN m.wind_dir::text = 'S'::text THEN 180
|
|
140
|
-
WHEN m.wind_dir::text = 'SW'::text THEN 225
|
|
141
|
-
WHEN m.wind_dir::text = 'W'::text THEN 270
|
|
142
|
-
WHEN m.wind_dir::text = 'NW'::text THEN 315
|
|
143
|
-
ELSE NULL::integer
|
|
144
|
-
END), ('wind_impact'::text,m.wind_impact), ('wind_speed'::text,m.wind_speed), ('precip'::text,m.precip), ('sun_irr'::text,m.sun_irr), ('soil_temp'::text,m.soil_temp), ('water_pot'::text,m.water_pot), ('dendro_circ'::text,m.dendro_circ), ('dendro_gain'::text,m.dendro_gain)) unpivot(measure, value)
|
|
145
|
-
WHERE unpivot.value IS NOT NULL
|
|
146
|
-
)
|
|
147
|
-
SELECT q.sensor_id,
|
|
148
|
-
q.measured_at,
|
|
149
|
-
q.point_id,
|
|
150
|
-
q.location_id,
|
|
151
|
-
q.measure,
|
|
152
|
-
q.value,
|
|
153
|
-
q.unit,
|
|
154
|
-
row_number() OVER (PARTITION BY q.point_id, q.measure ORDER BY q.point_id, q.measure, q.measured_at DESC) AS rn
|
|
155
|
-
FROM ( SELECT measurements.sensor_id,
|
|
156
|
-
measurements.measured_at,
|
|
157
|
-
points_heights.point_id,
|
|
158
|
-
points_heights.location_id,
|
|
159
|
-
concat(measurements.measure, points_heights.height_cm) AS measure,
|
|
160
|
-
measurements.value,
|
|
161
|
-
points_heights.unit
|
|
162
|
-
FROM measurements
|
|
163
|
-
JOIN points_heights ON points_heights.sensor_id::text = measurements.sensor_id::text AND points_heights.measure = measurements.measure) q
|
|
164
|
-
ORDER BY q.point_id, q.measure, q.measured_at DESC;
|
|
1
|
+
DROP VIEW analytic.v_microclimate_wind_dir_at_max_speed;
|
|
2
|
+
|
|
3
|
+
DROP VIEW analytic.v_microclimate_measurements_daily_w_hights;
|
|
4
|
+
|
|
5
|
+
DROP VIEW analytic.v_microclimate_measurement_hights;
|
|
6
|
+
|
|
7
|
+
DROP VIEW analytic.v_microclimate_measurements_daily;
|
|
8
|
+
|
|
9
|
+
DROP VIEW analytic.v_microclimate_raw_data;
|
|
10
|
+
|
|
11
|
+
DROP VIEW analytic.v_microclimate_sensor_devices;
|
|
12
|
+
|
|
13
|
+
DROP VIEW microclimate.v_sensor_points;
|
|
14
|
+
|
|
15
|
+
DROP VIEW microclimate.v_sensor_measurements;
|
|
16
|
+
|
|
17
|
+
DROP TABLE microclimate.sensor_devices_import;
|
|
18
|
+
|
|
19
|
+
CREATE TABLE microclimate.sensor_devices_import (
|
|
20
|
+
location_id int4 NULL,
|
|
21
|
+
point_id int4 NULL,
|
|
22
|
+
"location" varchar(50) NULL,
|
|
23
|
+
loc_description varchar(50) NULL,
|
|
24
|
+
loc_orientation varchar(50) NULL,
|
|
25
|
+
loc_surface varchar(50) NULL,
|
|
26
|
+
point_name varchar(50) NULL,
|
|
27
|
+
point_whole_name varchar(50) NULL,
|
|
28
|
+
address varchar(50) NULL,
|
|
29
|
+
sensor_position varchar(50) NULL,
|
|
30
|
+
sensor_position_detail varchar(50) NULL,
|
|
31
|
+
sensor_id varchar(50) NOT NULL,
|
|
32
|
+
data_relevance varchar(50) NULL,
|
|
33
|
+
lat float4 NULL,
|
|
34
|
+
lng float4 NULL,
|
|
35
|
+
air_temp int4 NULL,
|
|
36
|
+
air_hum int4 NULL,
|
|
37
|
+
pressure int4 NULL,
|
|
38
|
+
wind_dir int4 NULL,
|
|
39
|
+
wind_impact int4 NULL,
|
|
40
|
+
wind_speed int4 NULL,
|
|
41
|
+
precip int4 NULL,
|
|
42
|
+
sun_irr int4 NULL,
|
|
43
|
+
soil_temp int4 NULL,
|
|
44
|
+
water_pot int4 NULL,
|
|
45
|
+
dendro_circ int4 NULL,
|
|
46
|
+
dendro_gain int4 NULL,
|
|
47
|
+
data_until varchar(50) NULL,
|
|
48
|
+
CONSTRAINT sensor_devices_import_pkey PRIMARY KEY (sensor_id)
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
CREATE OR REPLACE VIEW microclimate.v_sensor_points
|
|
52
|
+
AS SELECT DISTINCT s.point_id,
|
|
53
|
+
s.point_name,
|
|
54
|
+
s.location_id,
|
|
55
|
+
s.location,
|
|
56
|
+
s.loc_description,
|
|
57
|
+
s.loc_orientation,
|
|
58
|
+
s.loc_surface,
|
|
59
|
+
s.lat,
|
|
60
|
+
s.lng,
|
|
61
|
+
NULL::text AS x_jtsk,
|
|
62
|
+
NULL::text AS y_jtsk,
|
|
63
|
+
NULL::text AS elevation_m,
|
|
64
|
+
s.sensor_position,
|
|
65
|
+
s.sensor_position_detail,
|
|
66
|
+
concat(unpivot.measure, unpivot.height_cm) AS measure,
|
|
67
|
+
CASE
|
|
68
|
+
WHEN unpivot.measure = 'air_temp'::text THEN 'Teplota vzduchu'::text
|
|
69
|
+
WHEN unpivot.measure = 'air_hum'::text THEN 'Vlhkost vzduchu'::text
|
|
70
|
+
WHEN unpivot.measure = 'pressure'::text THEN 'Atmosférický tlak'::text
|
|
71
|
+
WHEN unpivot.measure = 'wind_dir'::text THEN 'Směr větru'::text
|
|
72
|
+
WHEN unpivot.measure = 'wind_impact'::text THEN 'Náraz větru'::text
|
|
73
|
+
WHEN unpivot.measure = 'wind_speed'::text THEN 'Rychlost větru'::text
|
|
74
|
+
WHEN unpivot.measure = 'precip'::text THEN 'Úhrn srážek'::text
|
|
75
|
+
WHEN unpivot.measure = 'sun_irr'::text THEN 'Sluneční záření'::text
|
|
76
|
+
WHEN unpivot.measure = 'soil_temp'::text THEN 'Teplota půdy'::text
|
|
77
|
+
WHEN unpivot.measure = 'water_pot'::text THEN 'Vodní potenciál půdy'::text
|
|
78
|
+
WHEN unpivot.measure = 'dendro_circ'::text THEN 'Obvod stromu'::text
|
|
79
|
+
WHEN unpivot.measure = 'dendro_gain'::text THEN 'Přírůstek obvodu stromu'::text
|
|
80
|
+
ELSE NULL::text
|
|
81
|
+
END AS measure_cz,
|
|
82
|
+
CASE
|
|
83
|
+
WHEN unpivot.measure = 'air_temp'::text THEN '°C'::text
|
|
84
|
+
WHEN unpivot.measure = 'air_hum'::text THEN '%'::text
|
|
85
|
+
WHEN unpivot.measure = 'pressure'::text THEN 'Pa'::text
|
|
86
|
+
WHEN unpivot.measure = 'wind_dir'::text THEN '°'::text
|
|
87
|
+
WHEN unpivot.measure = 'wind_impact'::text THEN 'km/h'::text
|
|
88
|
+
WHEN unpivot.measure = 'wind_speed'::text THEN 'km/h'::text
|
|
89
|
+
WHEN unpivot.measure = 'precip'::text THEN 'mm'::text
|
|
90
|
+
WHEN unpivot.measure = 'sun_irr'::text THEN 'lux'::text
|
|
91
|
+
WHEN unpivot.measure = 'soil_temp'::text THEN '°C'::text
|
|
92
|
+
WHEN unpivot.measure = 'water_pot'::text THEN 'kPa'::text
|
|
93
|
+
WHEN unpivot.measure = 'dendro_circ'::text THEN 'mm'::text
|
|
94
|
+
WHEN unpivot.measure = 'dendro_gain'::text THEN 'µm'::text
|
|
95
|
+
ELSE NULL::text
|
|
96
|
+
END AS unit
|
|
97
|
+
FROM microclimate.sensor_devices_import s,
|
|
98
|
+
LATERAL ( VALUES ('air_temp'::text,s.air_temp), ('air_hum'::text,s.air_hum), ('pressure'::text,s.pressure), ('wind_dir'::text,s.wind_dir), ('wind_impact'::text,s.wind_impact), ('wind_speed'::text,s.wind_speed), ('precip'::text,s.precip), ('sun_irr'::text,s.sun_irr), ('soil_temp'::text,s.soil_temp), ('water_pot'::text,s.water_pot), ('dendro_circ'::text,s.dendro_circ), ('dendro_gain'::text,s.dendro_gain)) unpivot(measure, height_cm)
|
|
99
|
+
WHERE unpivot.height_cm IS NOT NULL
|
|
100
|
+
ORDER BY s.point_id;
|
|
101
|
+
|
|
102
|
+
CREATE OR REPLACE VIEW microclimate.v_sensor_measurements
|
|
103
|
+
AS WITH points_heights AS (
|
|
104
|
+
SELECT s.sensor_id,
|
|
105
|
+
s.point_id,
|
|
106
|
+
s.location_id,
|
|
107
|
+
unpivot.measure,
|
|
108
|
+
unpivot.height_cm,
|
|
109
|
+
CASE
|
|
110
|
+
WHEN unpivot.measure = 'air_temp'::text THEN '°C'::text
|
|
111
|
+
WHEN unpivot.measure = 'air_hum'::text THEN '%'::text
|
|
112
|
+
WHEN unpivot.measure = 'pressure'::text THEN 'Pa'::text
|
|
113
|
+
WHEN unpivot.measure = 'wind_dir'::text THEN '°'::text
|
|
114
|
+
WHEN unpivot.measure = 'wind_impact'::text THEN 'km/h'::text
|
|
115
|
+
WHEN unpivot.measure = 'wind_speed'::text THEN 'km/h'::text
|
|
116
|
+
WHEN unpivot.measure = 'precip'::text THEN 'mm'::text
|
|
117
|
+
WHEN unpivot.measure = 'sun_irr'::text THEN 'lux'::text
|
|
118
|
+
WHEN unpivot.measure = 'soil_temp'::text THEN '°C'::text
|
|
119
|
+
WHEN unpivot.measure = 'water_pot'::text THEN 'kPa'::text
|
|
120
|
+
WHEN unpivot.measure = 'dendro_circ'::text THEN 'mm'::text
|
|
121
|
+
WHEN unpivot.measure = 'dendro_gain'::text THEN 'µm'::text
|
|
122
|
+
ELSE NULL::text
|
|
123
|
+
END AS unit
|
|
124
|
+
FROM microclimate.sensor_devices_import s,
|
|
125
|
+
LATERAL ( VALUES ('air_temp'::text,s.air_temp), ('air_hum'::text,s.air_hum), ('pressure'::text,s.pressure), ('wind_dir'::text,s.wind_dir), ('wind_impact'::text,s.wind_impact), ('wind_speed'::text,s.wind_speed), ('precip'::text,s.precip), ('sun_irr'::text,s.sun_irr), ('soil_temp'::text,s.soil_temp), ('water_pot'::text,s.water_pot), ('dendro_circ'::text,s.dendro_circ), ('dendro_gain'::text,s.dendro_gain)) unpivot(measure, height_cm)
|
|
126
|
+
WHERE unpivot.height_cm IS NOT NULL
|
|
127
|
+
), measurements AS (
|
|
128
|
+
SELECT m.sensor_id,
|
|
129
|
+
m.measured_at,
|
|
130
|
+
unpivot.measure,
|
|
131
|
+
unpivot.value
|
|
132
|
+
FROM microclimate.measurements m,
|
|
133
|
+
LATERAL ( VALUES ('air_temp'::text,m.air_temp), ('air_hum'::text,m.air_hum), ('pressure'::text,m.pressure), ('wind_dir'::text,
|
|
134
|
+
CASE
|
|
135
|
+
WHEN m.wind_dir::text = 'N'::text THEN 0
|
|
136
|
+
WHEN m.wind_dir::text = 'NE'::text THEN 45
|
|
137
|
+
WHEN m.wind_dir::text = 'E'::text THEN 90
|
|
138
|
+
WHEN m.wind_dir::text = 'SE'::text THEN 135
|
|
139
|
+
WHEN m.wind_dir::text = 'S'::text THEN 180
|
|
140
|
+
WHEN m.wind_dir::text = 'SW'::text THEN 225
|
|
141
|
+
WHEN m.wind_dir::text = 'W'::text THEN 270
|
|
142
|
+
WHEN m.wind_dir::text = 'NW'::text THEN 315
|
|
143
|
+
ELSE NULL::integer
|
|
144
|
+
END), ('wind_impact'::text,m.wind_impact), ('wind_speed'::text,m.wind_speed), ('precip'::text,m.precip), ('sun_irr'::text,m.sun_irr), ('soil_temp'::text,m.soil_temp), ('water_pot'::text,m.water_pot), ('dendro_circ'::text,m.dendro_circ), ('dendro_gain'::text,m.dendro_gain)) unpivot(measure, value)
|
|
145
|
+
WHERE unpivot.value IS NOT NULL
|
|
146
|
+
)
|
|
147
|
+
SELECT q.sensor_id,
|
|
148
|
+
q.measured_at,
|
|
149
|
+
q.point_id,
|
|
150
|
+
q.location_id,
|
|
151
|
+
q.measure,
|
|
152
|
+
q.value,
|
|
153
|
+
q.unit,
|
|
154
|
+
row_number() OVER (PARTITION BY q.point_id, q.measure ORDER BY q.point_id, q.measure, q.measured_at DESC) AS rn
|
|
155
|
+
FROM ( SELECT measurements.sensor_id,
|
|
156
|
+
measurements.measured_at,
|
|
157
|
+
points_heights.point_id,
|
|
158
|
+
points_heights.location_id,
|
|
159
|
+
concat(measurements.measure, points_heights.height_cm) AS measure,
|
|
160
|
+
measurements.value,
|
|
161
|
+
points_heights.unit
|
|
162
|
+
FROM measurements
|
|
163
|
+
JOIN points_heights ON points_heights.sensor_id::text = measurements.sensor_id::text AND points_heights.measure = measurements.measure) q
|
|
164
|
+
ORDER BY q.point_id, q.measure, q.measured_at DESC;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
ALTER TABLE sensor_devices_import ALTER COLUMN data_relevance TYPE varchar(50);
|
|
1
|
+
ALTER TABLE sensor_devices_import ALTER COLUMN data_relevance TYPE varchar(50);
|
|
2
2
|
ALTER TABLE sensor_devices_import ALTER COLUMN data_until TYPE varchar(50);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
ALTER TABLE sensor_devices_import ALTER COLUMN data_relevance TYPE date USING data_relevance::date;
|
|
2
|
-
ALTER TABLE sensor_devices_import ALTER COLUMN data_until TYPE date USING data_until::date;
|
|
1
|
+
ALTER TABLE sensor_devices_import ALTER COLUMN data_relevance TYPE date USING data_relevance::date;
|
|
2
|
+
ALTER TABLE sensor_devices_import ALTER COLUMN data_until TYPE date USING data_until::date;
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
-- microclimate.v_sensor_measurements source
|
|
2
|
-
|
|
3
|
-
CREATE OR REPLACE VIEW v_sensor_measurements
|
|
4
|
-
AS WITH points_heights AS (
|
|
5
|
-
SELECT s.sensor_id,
|
|
6
|
-
s.point_id,
|
|
7
|
-
s.location_id,
|
|
8
|
-
unpivot.measure,
|
|
9
|
-
unpivot.height_cm,
|
|
10
|
-
CASE
|
|
11
|
-
WHEN unpivot.measure = 'air_temp'::text THEN '°C'::text
|
|
12
|
-
WHEN unpivot.measure = 'air_hum'::text THEN '%'::text
|
|
13
|
-
WHEN unpivot.measure = 'pressure'::text THEN 'Pa'::text
|
|
14
|
-
WHEN unpivot.measure = 'wind_dir'::text THEN '°'::text
|
|
15
|
-
WHEN unpivot.measure = 'wind_impact'::text THEN 'km/h'::text
|
|
16
|
-
WHEN unpivot.measure = 'wind_speed'::text THEN 'km/h'::text
|
|
17
|
-
WHEN unpivot.measure = 'precip'::text THEN 'mm'::text
|
|
18
|
-
WHEN unpivot.measure = 'sun_irr'::text THEN 'lux'::text
|
|
19
|
-
WHEN unpivot.measure = 'soil_temp'::text THEN '°C'::text
|
|
20
|
-
WHEN unpivot.measure = 'water_pot'::text THEN 'kPa'::text
|
|
21
|
-
WHEN unpivot.measure = 'dendro_circ'::text THEN 'mm'::text
|
|
22
|
-
WHEN unpivot.measure = 'dendro_gain'::text THEN 'µm'::text
|
|
23
|
-
ELSE NULL::text
|
|
24
|
-
END AS unit
|
|
25
|
-
FROM sensor_devices_import s,
|
|
26
|
-
LATERAL ( VALUES ('air_temp'::text,s.air_temp), ('air_hum'::text,s.air_hum), ('pressure'::text,s.pressure), ('wind_dir'::text,s.wind_dir), ('wind_impact'::text,s.wind_impact), ('wind_speed'::text,s.wind_speed), ('precip'::text,s.precip), ('sun_irr'::text,s.sun_irr), ('soil_temp'::text,s.soil_temp), ('water_pot'::text,s.water_pot), ('dendro_circ'::text,s.dendro_circ), ('dendro_gain'::text,s.dendro_gain)) unpivot(measure, height_cm)
|
|
27
|
-
WHERE unpivot.height_cm IS NOT NULL
|
|
28
|
-
), measurements AS (
|
|
29
|
-
SELECT m.sensor_id,
|
|
30
|
-
m.measured_at,
|
|
31
|
-
unpivot.measure,
|
|
32
|
-
unpivot.value
|
|
33
|
-
FROM measurements m,
|
|
34
|
-
LATERAL ( VALUES ('air_temp'::text,m.air_temp), ('air_hum'::text,m.air_hum), ('pressure'::text,m.pressure), ('wind_dir'::text,
|
|
35
|
-
CASE
|
|
36
|
-
WHEN m.wind_dir::text = 'N'::text THEN 0
|
|
37
|
-
WHEN m.wind_dir::text = 'NE'::text THEN 45
|
|
38
|
-
WHEN m.wind_dir::text = 'E'::text THEN 90
|
|
39
|
-
WHEN m.wind_dir::text = 'SE'::text THEN 135
|
|
40
|
-
WHEN m.wind_dir::text = 'S'::text THEN 180
|
|
41
|
-
WHEN m.wind_dir::text = 'SW'::text THEN 225
|
|
42
|
-
WHEN m.wind_dir::text = 'W'::text THEN 270
|
|
43
|
-
WHEN m.wind_dir::text = 'NW'::text THEN 315
|
|
44
|
-
ELSE NULL::integer
|
|
45
|
-
END), ('wind_impact'::text,m.wind_impact), ('wind_speed'::text,m.wind_speed), ('precip'::text,m.precip), ('sun_irr'::text,m.sun_irr), ('soil_temp'::text,m.soil_temp), ('water_pot'::text,m.water_pot), ('dendro_circ'::text,m.dendro_circ), ('dendro_gain'::text,m.dendro_gain)) unpivot(measure, value)
|
|
46
|
-
WHERE unpivot.value IS NOT NULL
|
|
47
|
-
)
|
|
48
|
-
SELECT q.sensor_id,
|
|
49
|
-
q.measured_at,
|
|
50
|
-
q.point_id,
|
|
51
|
-
q.location_id,
|
|
52
|
-
q.measure,
|
|
53
|
-
q.value,
|
|
54
|
-
q.unit,
|
|
55
|
-
row_number() OVER (PARTITION BY q.point_id, q.measure ORDER BY q.point_id, q.measure, q.measured_at DESC) AS rn
|
|
56
|
-
FROM ( SELECT measurements.sensor_id,
|
|
57
|
-
measurements.measured_at,
|
|
58
|
-
points_heights.point_id,
|
|
59
|
-
points_heights.location_id,
|
|
60
|
-
concat(measurements.measure, points_heights.height_cm) AS measure,
|
|
61
|
-
measurements.value,
|
|
62
|
-
points_heights.unit
|
|
63
|
-
FROM measurements
|
|
64
|
-
JOIN points_heights ON points_heights.sensor_id::text = measurements.sensor_id::text AND points_heights.measure = measurements.measure) q
|
|
65
|
-
ORDER BY q.point_id, q.measure, q.measured_at DESC;
|
|
66
|
-
|
|
1
|
+
-- microclimate.v_sensor_measurements source
|
|
2
|
+
|
|
3
|
+
CREATE OR REPLACE VIEW v_sensor_measurements
|
|
4
|
+
AS WITH points_heights AS (
|
|
5
|
+
SELECT s.sensor_id,
|
|
6
|
+
s.point_id,
|
|
7
|
+
s.location_id,
|
|
8
|
+
unpivot.measure,
|
|
9
|
+
unpivot.height_cm,
|
|
10
|
+
CASE
|
|
11
|
+
WHEN unpivot.measure = 'air_temp'::text THEN '°C'::text
|
|
12
|
+
WHEN unpivot.measure = 'air_hum'::text THEN '%'::text
|
|
13
|
+
WHEN unpivot.measure = 'pressure'::text THEN 'Pa'::text
|
|
14
|
+
WHEN unpivot.measure = 'wind_dir'::text THEN '°'::text
|
|
15
|
+
WHEN unpivot.measure = 'wind_impact'::text THEN 'km/h'::text
|
|
16
|
+
WHEN unpivot.measure = 'wind_speed'::text THEN 'km/h'::text
|
|
17
|
+
WHEN unpivot.measure = 'precip'::text THEN 'mm'::text
|
|
18
|
+
WHEN unpivot.measure = 'sun_irr'::text THEN 'lux'::text
|
|
19
|
+
WHEN unpivot.measure = 'soil_temp'::text THEN '°C'::text
|
|
20
|
+
WHEN unpivot.measure = 'water_pot'::text THEN 'kPa'::text
|
|
21
|
+
WHEN unpivot.measure = 'dendro_circ'::text THEN 'mm'::text
|
|
22
|
+
WHEN unpivot.measure = 'dendro_gain'::text THEN 'µm'::text
|
|
23
|
+
ELSE NULL::text
|
|
24
|
+
END AS unit
|
|
25
|
+
FROM sensor_devices_import s,
|
|
26
|
+
LATERAL ( VALUES ('air_temp'::text,s.air_temp), ('air_hum'::text,s.air_hum), ('pressure'::text,s.pressure), ('wind_dir'::text,s.wind_dir), ('wind_impact'::text,s.wind_impact), ('wind_speed'::text,s.wind_speed), ('precip'::text,s.precip), ('sun_irr'::text,s.sun_irr), ('soil_temp'::text,s.soil_temp), ('water_pot'::text,s.water_pot), ('dendro_circ'::text,s.dendro_circ), ('dendro_gain'::text,s.dendro_gain)) unpivot(measure, height_cm)
|
|
27
|
+
WHERE unpivot.height_cm IS NOT NULL
|
|
28
|
+
), measurements AS (
|
|
29
|
+
SELECT m.sensor_id,
|
|
30
|
+
m.measured_at,
|
|
31
|
+
unpivot.measure,
|
|
32
|
+
unpivot.value
|
|
33
|
+
FROM measurements m,
|
|
34
|
+
LATERAL ( VALUES ('air_temp'::text,m.air_temp), ('air_hum'::text,m.air_hum), ('pressure'::text,m.pressure), ('wind_dir'::text,
|
|
35
|
+
CASE
|
|
36
|
+
WHEN m.wind_dir::text = 'N'::text THEN 0
|
|
37
|
+
WHEN m.wind_dir::text = 'NE'::text THEN 45
|
|
38
|
+
WHEN m.wind_dir::text = 'E'::text THEN 90
|
|
39
|
+
WHEN m.wind_dir::text = 'SE'::text THEN 135
|
|
40
|
+
WHEN m.wind_dir::text = 'S'::text THEN 180
|
|
41
|
+
WHEN m.wind_dir::text = 'SW'::text THEN 225
|
|
42
|
+
WHEN m.wind_dir::text = 'W'::text THEN 270
|
|
43
|
+
WHEN m.wind_dir::text = 'NW'::text THEN 315
|
|
44
|
+
ELSE NULL::integer
|
|
45
|
+
END), ('wind_impact'::text,m.wind_impact), ('wind_speed'::text,m.wind_speed), ('precip'::text,m.precip), ('sun_irr'::text,m.sun_irr), ('soil_temp'::text,m.soil_temp), ('water_pot'::text,m.water_pot), ('dendro_circ'::text,m.dendro_circ), ('dendro_gain'::text,m.dendro_gain)) unpivot(measure, value)
|
|
46
|
+
WHERE unpivot.value IS NOT NULL
|
|
47
|
+
)
|
|
48
|
+
SELECT q.sensor_id,
|
|
49
|
+
q.measured_at,
|
|
50
|
+
q.point_id,
|
|
51
|
+
q.location_id,
|
|
52
|
+
q.measure,
|
|
53
|
+
q.value,
|
|
54
|
+
q.unit,
|
|
55
|
+
row_number() OVER (PARTITION BY q.point_id, q.measure ORDER BY q.point_id, q.measure, q.measured_at DESC) AS rn
|
|
56
|
+
FROM ( SELECT measurements.sensor_id,
|
|
57
|
+
measurements.measured_at,
|
|
58
|
+
points_heights.point_id,
|
|
59
|
+
points_heights.location_id,
|
|
60
|
+
concat(measurements.measure, points_heights.height_cm) AS measure,
|
|
61
|
+
measurements.value,
|
|
62
|
+
points_heights.unit
|
|
63
|
+
FROM measurements
|
|
64
|
+
JOIN points_heights ON points_heights.sensor_id::text = measurements.sensor_id::text AND points_heights.measure = measurements.measure) q
|
|
65
|
+
ORDER BY q.point_id, q.measure, q.measured_at DESC;
|
|
66
|
+
|
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
CREATE OR REPLACE VIEW v_sensor_measurements
|
|
2
|
-
AS
|
|
3
|
-
WITH points_heights AS (
|
|
4
|
-
SELECT s.sensor_id,
|
|
5
|
-
s.point_id,
|
|
6
|
-
s.location_id,
|
|
7
|
-
unpivot.measure,
|
|
8
|
-
unpivot.height_cm,
|
|
9
|
-
CASE
|
|
10
|
-
WHEN unpivot.measure = 'air_temp'::text THEN '°C'::text
|
|
11
|
-
WHEN unpivot.measure = 'air_hum'::text THEN '%'::text
|
|
12
|
-
WHEN unpivot.measure = 'pressure'::text THEN 'Pa'::text
|
|
13
|
-
WHEN unpivot.measure = 'wind_dir'::text THEN '°'::text
|
|
14
|
-
WHEN unpivot.measure = 'wind_impact'::text THEN 'km/h'::text
|
|
15
|
-
WHEN unpivot.measure = 'wind_speed'::text THEN 'km/h'::text
|
|
16
|
-
WHEN unpivot.measure = 'precip'::text THEN 'mm'::text
|
|
17
|
-
WHEN unpivot.measure = 'sun_irr'::text THEN 'lux'::text
|
|
18
|
-
WHEN unpivot.measure = 'soil_temp'::text THEN '°C'::text
|
|
19
|
-
WHEN unpivot.measure = 'water_pot'::text THEN 'kPa'::text
|
|
20
|
-
WHEN unpivot.measure = 'dendro_circ'::text THEN 'mm'::text
|
|
21
|
-
WHEN unpivot.measure = 'dendro_gain'::text THEN 'µm'::text
|
|
22
|
-
ELSE NULL::text
|
|
23
|
-
END AS unit
|
|
24
|
-
FROM sensor_devices_import s,
|
|
25
|
-
LATERAL ( VALUES ('air_temp'::text,s.air_temp), ('air_hum'::text,s.air_hum), ('pressure'::text,s.pressure), ('wind_dir'::text,s.wind_dir), ('wind_impact'::text,s.wind_impact), ('wind_speed'::text,s.wind_speed), ('precip'::text,s.precip), ('sun_irr'::text,s.sun_irr), ('soil_temp'::text,s.soil_temp), ('water_pot'::text,s.water_pot), ('dendro_circ'::text,s.dendro_circ), ('dendro_gain'::text,s.dendro_gain)) unpivot(measure, height_cm)
|
|
26
|
-
WHERE unpivot.height_cm IS NOT NULL
|
|
27
|
-
), measurements AS (
|
|
28
|
-
SELECT m.sensor_id,
|
|
29
|
-
m.measured_at,
|
|
30
|
-
unpivot.measure,
|
|
31
|
-
unpivot.value
|
|
32
|
-
FROM measurements m
|
|
33
|
-
join sensor_devices_import sdi
|
|
34
|
-
on sdi.sensor_id = m.sensor_id
|
|
35
|
-
and m.measured_at::date >= sdi.data_relevance::date
|
|
36
|
-
and m.measured_at::date <= coalesce(sdi.data_until::date,current_date)
|
|
37
|
-
,
|
|
38
|
-
LATERAL ( VALUES ('air_temp'::text,m.air_temp), ('air_hum'::text,m.air_hum), ('pressure'::text,m.pressure), ('wind_dir'::text,
|
|
39
|
-
CASE
|
|
40
|
-
WHEN m.wind_dir::text = 'N'::text THEN 0
|
|
41
|
-
WHEN m.wind_dir::text = 'NE'::text THEN 45
|
|
42
|
-
WHEN m.wind_dir::text = 'E'::text THEN 90
|
|
43
|
-
WHEN m.wind_dir::text = 'SE'::text THEN 135
|
|
44
|
-
WHEN m.wind_dir::text = 'S'::text THEN 180
|
|
45
|
-
WHEN m.wind_dir::text = 'SW'::text THEN 225
|
|
46
|
-
WHEN m.wind_dir::text = 'W'::text THEN 270
|
|
47
|
-
WHEN m.wind_dir::text = 'NW'::text THEN 315
|
|
48
|
-
ELSE NULL::integer
|
|
49
|
-
END), ('wind_impact'::text,m.wind_impact), ('wind_speed'::text,m.wind_speed), ('precip'::text,m.precip), ('sun_irr'::text,m.sun_irr), ('soil_temp'::text,m.soil_temp), ('water_pot'::text,m.water_pot), ('dendro_circ'::text,m.dendro_circ), ('dendro_gain'::text,m.dendro_gain)) unpivot(measure, value)
|
|
50
|
-
WHERE unpivot.value IS NOT NULL
|
|
51
|
-
)
|
|
52
|
-
SELECT q.sensor_id,
|
|
53
|
-
q.measured_at,
|
|
54
|
-
q.point_id,
|
|
55
|
-
q.location_id,
|
|
56
|
-
q.measure,
|
|
57
|
-
q.value,
|
|
58
|
-
q.unit,
|
|
59
|
-
row_number() OVER (PARTITION BY q.point_id, q.measure ORDER BY q.point_id, q.measure, q.measured_at DESC) AS rn
|
|
60
|
-
FROM ( SELECT measurements.sensor_id,
|
|
61
|
-
measurements.measured_at,
|
|
62
|
-
points_heights.point_id,
|
|
63
|
-
points_heights.location_id,
|
|
64
|
-
concat(measurements.measure, points_heights.height_cm) AS measure,
|
|
65
|
-
measurements.value,
|
|
66
|
-
points_heights.unit
|
|
67
|
-
FROM measurements
|
|
68
|
-
JOIN points_heights ON points_heights.sensor_id::text = measurements.sensor_id::text AND points_heights.measure = measurements.measure) q
|
|
69
|
-
ORDER BY q.point_id, q.measure, q.measured_at DESC;
|
|
1
|
+
CREATE OR REPLACE VIEW v_sensor_measurements
|
|
2
|
+
AS
|
|
3
|
+
WITH points_heights AS (
|
|
4
|
+
SELECT s.sensor_id,
|
|
5
|
+
s.point_id,
|
|
6
|
+
s.location_id,
|
|
7
|
+
unpivot.measure,
|
|
8
|
+
unpivot.height_cm,
|
|
9
|
+
CASE
|
|
10
|
+
WHEN unpivot.measure = 'air_temp'::text THEN '°C'::text
|
|
11
|
+
WHEN unpivot.measure = 'air_hum'::text THEN '%'::text
|
|
12
|
+
WHEN unpivot.measure = 'pressure'::text THEN 'Pa'::text
|
|
13
|
+
WHEN unpivot.measure = 'wind_dir'::text THEN '°'::text
|
|
14
|
+
WHEN unpivot.measure = 'wind_impact'::text THEN 'km/h'::text
|
|
15
|
+
WHEN unpivot.measure = 'wind_speed'::text THEN 'km/h'::text
|
|
16
|
+
WHEN unpivot.measure = 'precip'::text THEN 'mm'::text
|
|
17
|
+
WHEN unpivot.measure = 'sun_irr'::text THEN 'lux'::text
|
|
18
|
+
WHEN unpivot.measure = 'soil_temp'::text THEN '°C'::text
|
|
19
|
+
WHEN unpivot.measure = 'water_pot'::text THEN 'kPa'::text
|
|
20
|
+
WHEN unpivot.measure = 'dendro_circ'::text THEN 'mm'::text
|
|
21
|
+
WHEN unpivot.measure = 'dendro_gain'::text THEN 'µm'::text
|
|
22
|
+
ELSE NULL::text
|
|
23
|
+
END AS unit
|
|
24
|
+
FROM sensor_devices_import s,
|
|
25
|
+
LATERAL ( VALUES ('air_temp'::text,s.air_temp), ('air_hum'::text,s.air_hum), ('pressure'::text,s.pressure), ('wind_dir'::text,s.wind_dir), ('wind_impact'::text,s.wind_impact), ('wind_speed'::text,s.wind_speed), ('precip'::text,s.precip), ('sun_irr'::text,s.sun_irr), ('soil_temp'::text,s.soil_temp), ('water_pot'::text,s.water_pot), ('dendro_circ'::text,s.dendro_circ), ('dendro_gain'::text,s.dendro_gain)) unpivot(measure, height_cm)
|
|
26
|
+
WHERE unpivot.height_cm IS NOT NULL
|
|
27
|
+
), measurements AS (
|
|
28
|
+
SELECT m.sensor_id,
|
|
29
|
+
m.measured_at,
|
|
30
|
+
unpivot.measure,
|
|
31
|
+
unpivot.value
|
|
32
|
+
FROM measurements m
|
|
33
|
+
join sensor_devices_import sdi
|
|
34
|
+
on sdi.sensor_id = m.sensor_id
|
|
35
|
+
and m.measured_at::date >= sdi.data_relevance::date
|
|
36
|
+
and m.measured_at::date <= coalesce(sdi.data_until::date,current_date)
|
|
37
|
+
,
|
|
38
|
+
LATERAL ( VALUES ('air_temp'::text,m.air_temp), ('air_hum'::text,m.air_hum), ('pressure'::text,m.pressure), ('wind_dir'::text,
|
|
39
|
+
CASE
|
|
40
|
+
WHEN m.wind_dir::text = 'N'::text THEN 0
|
|
41
|
+
WHEN m.wind_dir::text = 'NE'::text THEN 45
|
|
42
|
+
WHEN m.wind_dir::text = 'E'::text THEN 90
|
|
43
|
+
WHEN m.wind_dir::text = 'SE'::text THEN 135
|
|
44
|
+
WHEN m.wind_dir::text = 'S'::text THEN 180
|
|
45
|
+
WHEN m.wind_dir::text = 'SW'::text THEN 225
|
|
46
|
+
WHEN m.wind_dir::text = 'W'::text THEN 270
|
|
47
|
+
WHEN m.wind_dir::text = 'NW'::text THEN 315
|
|
48
|
+
ELSE NULL::integer
|
|
49
|
+
END), ('wind_impact'::text,m.wind_impact), ('wind_speed'::text,m.wind_speed), ('precip'::text,m.precip), ('sun_irr'::text,m.sun_irr), ('soil_temp'::text,m.soil_temp), ('water_pot'::text,m.water_pot), ('dendro_circ'::text,m.dendro_circ), ('dendro_gain'::text,m.dendro_gain)) unpivot(measure, value)
|
|
50
|
+
WHERE unpivot.value IS NOT NULL
|
|
51
|
+
)
|
|
52
|
+
SELECT q.sensor_id,
|
|
53
|
+
q.measured_at,
|
|
54
|
+
q.point_id,
|
|
55
|
+
q.location_id,
|
|
56
|
+
q.measure,
|
|
57
|
+
q.value,
|
|
58
|
+
q.unit,
|
|
59
|
+
row_number() OVER (PARTITION BY q.point_id, q.measure ORDER BY q.point_id, q.measure, q.measured_at DESC) AS rn
|
|
60
|
+
FROM ( SELECT measurements.sensor_id,
|
|
61
|
+
measurements.measured_at,
|
|
62
|
+
points_heights.point_id,
|
|
63
|
+
points_heights.location_id,
|
|
64
|
+
concat(measurements.measure, points_heights.height_cm) AS measure,
|
|
65
|
+
measurements.value,
|
|
66
|
+
points_heights.unit
|
|
67
|
+
FROM measurements
|
|
68
|
+
JOIN points_heights ON points_heights.sensor_id::text = measurements.sensor_id::text AND points_heights.measure = measurements.measure) q
|
|
69
|
+
ORDER BY q.point_id, q.measure, q.measured_at DESC;
|