From ae32fe61ac2d177ebe515e024e7bc4599287a1ae Mon Sep 17 00:00:00 2001 From: Ryan Voots Date: Fri, 9 May 2025 17:54:09 -0400 Subject: [PATCH] Add the grafana query, could be cleaned up a bit but works --- sql/condition-glucose-grafana.sql | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 sql/condition-glucose-grafana.sql diff --git a/sql/condition-glucose-grafana.sql b/sql/condition-glucose-grafana.sql new file mode 100644 index 0000000..d7f5616 --- /dev/null +++ b/sql/condition-glucose-grafana.sql @@ -0,0 +1,31 @@ +WITH range_ts AS ( +SELECT DATE_TRUNC('minute', ts) as ts +FROM generate_series($__timeFrom(), $__timeTo(), '1 minute'::interval) AS ts +), coallated AS + +(SELECT ts, + gi_prev.time as stime, + gi_next.time as etime, + gi_prev.value as svalue, + gi_next.value as evalue, + EXTRACT(EPOCH FROM ts-gi_prev.time)/EXTRACT(EPOCH FROM gi_next.time-gi_prev.time) * gi_prev.value + + EXTRACT(EPOCH FROM gi_next.time-ts)/EXTRACT(EPOCH FROM gi_next.time-gi_prev.time) * gi_next.value AS samp_value + FROM range_ts rts + LEFT JOIN LATERAL ( + SELECT * + FROM "glucose-import" + WHERE "time" <= rts.ts + ORDER BY "time" DESC + LIMIT 1 + ) AS gi_prev ON true + LEFT JOIN LATERAL ( + SELECT * + FROM "glucose-import" + WHERE "time" >= rts.ts + ORDER BY "time" ASC + LIMIT 1 +) AS gi_next ON true +WHERE gi_prev.time IS NOT NULL and gi_next.time IS NOT NULL AND gi_next.time <> gi_prev.time +) +SELECT ts as time, samp_value as value +FROM coallated;