NEWS
[gelöst] Grafana MySQL-Abfrage
-
Hallo,
wie müsste folgende Abfrage erweitert werden, um nur den aktuellsten Wert der jeweiligen Datenpunkte zu bekommen?SELECT d.name as metric ,floor(n.ts/1000) AS time_sec ,n.val AS value FROM iobroker.ts_number n ,datapoints d WHERE n.id IN (8,9) AND n.id = d.id ORDER BY n.id, n.ts DESC
Danke und Grüße Kail
-
Habe es mit row_num gelöst.
Die Felder im Sub-Select werden zwar nicht alle benötigt, dienen aber noch zu Testzwecken.
Die Darstellung in Grafana erfolgt über ein Bar gauge.SELECT d.name ,d.value FROM ( SELECT ROW_NUMBER() OVER ( PARTITION BY n.id ORDER BY n.ts DESC) AS row_num ,n.id ,floor(n.ts/1000) AS time_sec ,n.val as value ,CASE n.id WHEN 8 THEN 'Stromzähler' WHEN 9 THEN 'TV' WHEN 10 THEN 'Kühlschrank' WHEN 11 THEN 'Waschmasch.' WHEN 12 THEN 'Trockner' WHEN 13 THEN 'Spülmschine' END AS name FROM iobroker.ts_number n ,datapoints d WHERE n.id IN (8,9,10,11,12,13) AND n.id = d.id ORDER BY n.id, n.ts DESC ) d WHERE d.row_num=1 ORDER BY d.value DESC, d.id