Update README.md
This commit is contained in:
134
README.md
134
README.md
@@ -96,18 +96,18 @@ SELECT
|
|||||||
s.sensorType,
|
s.sensorType,
|
||||||
s.unit,
|
s.unit,
|
||||||
s.status AS sensorStatus,
|
s.status AS sensorStatus,
|
||||||
s.timestamp AS sensorTimestamp,
|
wv.temperature,
|
||||||
av.temperature,
|
wv.humidity,
|
||||||
av.humidity,
|
cv.value AS carbonMonoxide,
|
||||||
av.carbonMonoxide,
|
|
||||||
av.timestamp AS airValuesTimestamp,
|
|
||||||
gv.lat,
|
gv.lat,
|
||||||
gv.lon,
|
gv.lon,
|
||||||
gv.timestamp AS gpsTimestamp
|
COALESCE(gv.timestamp, wv.timestamp, cv.timestamp) AS timestamp -- el primero no nulo
|
||||||
FROM sensors s
|
FROM sensors s
|
||||||
LEFT JOIN air_values av ON s.sensorId = av.sensorId
|
LEFT JOIN weather_values wv ON s.sensorId = wv.sensorId
|
||||||
|
LEFT JOIN co_values cv ON s.sensorId = cv.sensorId
|
||||||
LEFT JOIN gps_values gv ON s.sensorId = gv.sensorId;
|
LEFT JOIN gps_values gv ON s.sensorId = gv.sensorId;
|
||||||
|
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW v_latest_values AS
|
CREATE OR REPLACE VIEW v_latest_values AS
|
||||||
SELECT
|
SELECT
|
||||||
s.deviceId,
|
s.deviceId,
|
||||||
@@ -116,47 +116,95 @@ SELECT
|
|||||||
s.unit,
|
s.unit,
|
||||||
s.status AS sensorStatus,
|
s.status AS sensorStatus,
|
||||||
s.timestamp AS sensorTimestamp,
|
s.timestamp AS sensorTimestamp,
|
||||||
av.temperature,
|
wv.temperature,
|
||||||
av.humidity,
|
wv.humidity,
|
||||||
av.carbonMonoxide,
|
cv.value AS carbonMonoxide,
|
||||||
av.timestamp AS airValuesTimestamp
|
gv.lat,
|
||||||
|
gv.lon,
|
||||||
|
COALESCE(gv.timestamp, wv.timestamp, cv.timestamp) AS airValuesTimestamp -- el primero no nulo
|
||||||
FROM sensors s
|
FROM sensors s
|
||||||
LEFT JOIN air_values av
|
LEFT JOIN weather_values wv ON s.sensorId = wv.sensorId
|
||||||
ON s.sensorId = av.sensorId
|
LEFT JOIN co_values cv ON s.sensorId = cv.sensorId
|
||||||
AND av.timestamp = (
|
LEFT JOIN gps_values gv ON s.sensorId = gv.sensorId
|
||||||
SELECT MAX(timestamp)
|
WHERE (wv.timestamp = (SELECT MAX(timestamp) FROM weather_values WHERE sensorId = s.sensorId)
|
||||||
FROM air_values
|
OR cv.timestamp = (SELECT MAX(timestamp) FROM co_values WHERE sensorId = s.sensorId)
|
||||||
WHERE sensorId = s.sensorId
|
OR gv.timestamp = (SELECT MAX(timestamp) FROM gps_values WHERE sensorId = s.sensorId));
|
||||||
);
|
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW v_pollution_map AS
|
|
||||||
SELECT
|
-- VISTAS AUXILIARES
|
||||||
|
CREATE OR REPLACE VIEW v_co_by_device AS
|
||||||
|
SELECT
|
||||||
|
s.deviceId,
|
||||||
|
c.value AS carbonMonoxide,
|
||||||
|
c.timestamp
|
||||||
|
FROM sensors s
|
||||||
|
JOIN co_values c ON s.sensorId = c.sensorId
|
||||||
|
WHERE s.sensorType = 'CO';
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW v_gps_by_device AS
|
||||||
|
SELECT
|
||||||
|
s.deviceId,
|
||||||
g.lat,
|
g.lat,
|
||||||
g.lon,
|
g.lon,
|
||||||
a.carbonMonoxide,
|
g.timestamp
|
||||||
d.deviceId,
|
FROM sensors s
|
||||||
d.deviceName
|
JOIN gps_values g ON s.sensorId = g.sensorId
|
||||||
FROM
|
WHERE s.sensorType = 'GPS';
|
||||||
gps_values g
|
|
||||||
JOIN
|
|
||||||
air_values a ON g.sensorId = a.sensorId
|
|
||||||
JOIN
|
|
||||||
sensors s ON a.sensorId = s.sensorId
|
|
||||||
JOIN
|
|
||||||
devices d ON s.deviceId = d.deviceId
|
|
||||||
WHERE
|
|
||||||
(g.sensorId, g.timestamp) IN (
|
|
||||||
SELECT sensorId, MAX(timestamp)
|
|
||||||
FROM gps_values
|
|
||||||
GROUP BY sensorId
|
|
||||||
)
|
|
||||||
AND
|
|
||||||
(a.sensorId, a.timestamp) IN (
|
|
||||||
SELECT sensorId, MAX(timestamp)
|
|
||||||
FROM air_values
|
|
||||||
GROUP BY sensorId
|
|
||||||
);
|
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW v_weather_by_device AS
|
||||||
|
SELECT
|
||||||
|
s.deviceId,
|
||||||
|
w.temperature AS temperature,
|
||||||
|
w.humidity AS humidity,
|
||||||
|
w.timestamp
|
||||||
|
FROM sensors s
|
||||||
|
JOIN weather_values w ON s.sensorId = w.sensorId
|
||||||
|
WHERE s.sensorType = 'Temperature & Humidity';
|
||||||
|
-- VISTAS AUXILIARES
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW v_pollution_map AS
|
||||||
|
SELECT
|
||||||
|
d.deviceId,
|
||||||
|
d.deviceName,
|
||||||
|
g.lat,
|
||||||
|
g.lon,
|
||||||
|
c.carbonMonoxide,
|
||||||
|
c.timestamp
|
||||||
|
FROM devices d
|
||||||
|
LEFT JOIN v_co_by_device c ON d.deviceId = c.deviceId
|
||||||
|
LEFT JOIN v_gps_by_device g ON d.deviceId = g.deviceId
|
||||||
|
AND (g.timestamp <= c.timestamp OR g.timestamp IS NULL)
|
||||||
|
WHERE c.carbonMonoxide IS NOT NULL
|
||||||
|
ORDER BY d.deviceId, c.timestamp;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW v_sensor_history_by_device AS
|
||||||
|
SELECT
|
||||||
|
d.deviceId,
|
||||||
|
d.deviceName,
|
||||||
|
w.temperature AS value,
|
||||||
|
'temperature' AS valueType,
|
||||||
|
w.timestamp
|
||||||
|
FROM devices d
|
||||||
|
JOIN v_weather_by_device w ON d.deviceId = w.deviceId
|
||||||
|
UNION ALL
|
||||||
|
SELECT
|
||||||
|
d.deviceId,
|
||||||
|
d.deviceName,
|
||||||
|
w.humidity AS value,
|
||||||
|
'humidity' AS valueType,
|
||||||
|
w.timestamp
|
||||||
|
FROM devices d
|
||||||
|
JOIN v_weather_by_device w ON d.deviceId = w.deviceId
|
||||||
|
UNION ALL
|
||||||
|
SELECT
|
||||||
|
d.deviceId,
|
||||||
|
d.deviceName,
|
||||||
|
c.carbonMonoxide AS value,
|
||||||
|
'carbonMonoxide' AS valueType,
|
||||||
|
c.timestamp
|
||||||
|
FROM devices d
|
||||||
|
JOIN v_co_by_device c ON d.deviceId = c.deviceId
|
||||||
|
ORDER BY deviceId, timestamp;
|
||||||
|
|
||||||
-- Insertar grupos
|
-- Insertar grupos
|
||||||
INSERT INTO groups (groupName) VALUES ('Grupo 1');
|
INSERT INTO groups (groupName) VALUES ('Grupo 1');
|
||||||
|
|||||||
Reference in New Issue
Block a user