Replace port_in/out_measurements with latest values only

This commit is contained in:
Richard
2016-03-07 18:31:12 +00:00
committed by Richard Lawley
parent 5e57a026e9
commit 19e9cda8d0
3 changed files with 46 additions and 32 deletions
+4
View File
@@ -0,0 +1,4 @@
CREATE TABLE bill_port_counters(port_id int NOT NULL PRIMARY KEY, `timestamp` timestamp NOT NULL DEFAULT current_timestamp, in_counter bigint, in_delta bigint NOT NULL DEFAULT 0, out_counter bigint, out_delta bigint NOT NULL DEFAULT 0);
INSERT INTO bill_port_counters(port_id, timestamp, in_counter, out_counter) SELECT q.port_id, q.max_timestamp, max(i.counter), max(o.counter) FROM (SELECT port_id, MAX(`timestamp`) AS max_timestamp FROM port_in_measurements GROUP BY port_id) q INNER JOIN port_in_measurements i ON q.port_id = i.port_id AND q.max_timestamp = i.timestamp INNER JOIN port_out_measurements o ON q.port_id = o.port_id AND q.max_timestamp = o.timestamp GROUP BY q.port_id, q.max_timestamp;
DROP TABLE port_in_measurements;
DROP TABLE port_out_measurements;