Files
minerops/sql/minerops-retention-hourly.sql
T

35 lines
1.0 KiB
SQL

INSERT INTO miner_status_hourly_rollups (
miner_id,
bucket_at,
sample_count,
avg_mhs_av,
max_mhs_av,
avg_power_w,
max_chip_temp_c,
avg_chip_temp_c,
avg_pool_rejected_percent,
updated_at
)
SELECT
miner_id,
date_trunc('hour', observed_at) AS bucket_at,
COUNT(*) AS sample_count,
AVG(mhs_av)::double precision,
MAX(mhs_av)::double precision,
AVG(power_w)::double precision,
MAX(chip_temp_max_c)::double precision,
AVG(chip_temp_avg_c)::double precision,
AVG(pool_rejected_percent)::double precision,
now()
FROM miner_status_snapshots
GROUP BY miner_id, date_trunc('hour', observed_at)
ON CONFLICT (miner_id, bucket_at) DO UPDATE
SET sample_count = EXCLUDED.sample_count,
avg_mhs_av = EXCLUDED.avg_mhs_av,
max_mhs_av = EXCLUDED.max_mhs_av,
avg_power_w = EXCLUDED.avg_power_w,
max_chip_temp_c = EXCLUDED.max_chip_temp_c,
avg_chip_temp_c = EXCLUDED.avg_chip_temp_c,
avg_pool_rejected_percent = EXCLUDED.avg_pool_rejected_percent,
updated_at = now();