mirror of
https://github.com/SyncrowIOT/data.git
synced 2025-08-25 22:19:40 +00:00
energy consummed
This commit is contained in:
@ -1,22 +1,18 @@
|
||||
with energy_consumed as (
|
||||
SELECT event_time::date,
|
||||
EXTRACT(HOUR FROM event_time) AS hour,
|
||||
device_id ,
|
||||
space_device_uuid as space_id,
|
||||
sum (case when code ='EnergyConsumed' then value::integer end) as total_energy_consummed,
|
||||
sum (case when code='EnergyConsumedA' then value::integer end) as energy_consumed_phaseA,
|
||||
sum (case when code='EnergyConsumedB' then value::integer end) as energy_consumed_phaseB,
|
||||
sum (case when code='EnergyConsumedC' then value::integer end) as energy_consumed_phaseC
|
||||
FROM device
|
||||
LEFT JOIN "device-status-log"
|
||||
ON device.uuid = "device-status-log".device_id
|
||||
LEFT JOIN product
|
||||
ON product.uuid = device.product_device_uuid
|
||||
group by 1,2,3,4
|
||||
ORDER BY 1,3,2
|
||||
)
|
||||
WITH first_last_times AS (
|
||||
-- Get the first and last event_time per device per day
|
||||
SELECT
|
||||
device_id,
|
||||
event_time::date AS date,
|
||||
MIN(value)::integer AS min_value,
|
||||
MAX(value)::integer AS max_value
|
||||
FROM "device-status-log"
|
||||
where code='EnergyConsumed'
|
||||
GROUP BY device_id, date
|
||||
)
|
||||
|
||||
select *
|
||||
from energy_consumed
|
||||
where total_energy_consummed is not null
|
||||
SELECT
|
||||
device_id,
|
||||
date,
|
||||
(max_value-min_value) as energy_consumed_kW
|
||||
FROM first_last_times
|
||||
|
||||
|
Reference in New Issue
Block a user