id_measurement
meter
power
energy
reading_date (measurements are taken every 15 minutes)
< /code>
Чего я хочу достичь в Grafana, чтобы показать ежедневную сумму потребления энергии, где день начинается в 06:15 и заканчивается в 06:00 на следующий день. Я также хочу использовать временной фильтр Графаны ($ __ Timefilter), чтобы ограничить показанные данные. Я был бы признателен за любые отзывы о том, является ли этот подход правильным, и любые предложения для оптимизации: < /p>
SELECT
UNIX_TIMESTAMP(billing_day) * 1000 AS time,
billing_day AS datum,
SUM(
IF(
meter IN ('192.168.25.31', '192.168.25.36', '192.168.25.37', '192.168.25.38'),
consumption * 2,
consumption
)
) AS value
FROM (
SELECT
DATE(reading_date
- INTERVAL 6 HOUR
- INTERVAL 15 MINUTE
) AS billing_day,
meter,
MAX(energy) - MIN(energy) AS consumption
FROM meter_measurements
WHERE
$__timeFilter(
reading_date
- INTERVAL 6 HOUR
- INTERVAL 15 MINUTE
)
AND meter IN (
'192.168.25.31', '192.168.25.32', '192.168.25.33',
'192.168.25.34', '192.168.25.35', '192.168.25.36',
'192.168.25.37', '192.168.25.38'
)
GROUP BY billing_day, meter
) AS sub
GROUP BY billing_day
ORDER BY billing_day;
В MySQL у меня есть таблица измерений энергии со следующими столбцами: < /p> [code]id_measurement
meter
power
energy
reading_date (measurements are taken every 15 minutes) < /code> Чего я хочу достичь в Grafana, чтобы показать ежедневную сумму потребления энергии, где день начинается в 06:15 и заканчивается в 06:00 на следующий день. Я также хочу использовать временной фильтр Графаны ($ __ Timefilter), чтобы ограничить показанные данные. Я был бы признателен за любые отзывы о том, является ли этот подход правильным, и любые предложения для оптимизации: < /p> SELECT UNIX_TIMESTAMP(billing_day) * 1000 AS time, billing_day AS datum, SUM( IF( meter IN ('192.168.25.31', '192.168.25.36', '192.168.25.37', '192.168.25.38'), consumption * 2, consumption ) ) AS value FROM ( SELECT DATE(reading_date - INTERVAL 6 HOUR - INTERVAL 15 MINUTE ) AS billing_day, meter, MAX(energy) - MIN(energy) AS consumption FROM meter_measurements WHERE $__timeFilter( reading_date - INTERVAL 6 HOUR - INTERVAL 15 MINUTE ) AND meter IN ( '192.168.25.31', '192.168.25.32', '192.168.25.33', '192.168.25.34', '192.168.25.35', '192.168.25.36', '192.168.25.37', '192.168.25.38' ) GROUP BY billing_day, meter ) AS sub GROUP BY billing_day ORDER BY billing_day; [/code] Заранее спасибо за любую помощь или предложения!