Delete the old data of the flow_statistic table, leaving only the latest statistics

BEGIN

/***************start**********************/

INSERT INTO flow_statistic (

idx, ipaddr1, ipaddr2, port1, port2, proto, protocol, 

down_bytes, up_bytes, flow, packet, 

up_rate, down_rate, packet_rate, updatetime

)

SELECT 

idx, ipaddr1, ipaddr2, port1, port2, proto, protocol, 

SUM(down_bytes) as down_bytes, SUM(up_bytes) as up_bytes, SUM(flow) as flow, SUM(packet) as packet,

up_rate, down_rate, packet_rate, updatetime

FROM flow

GROUP BY idx 

ORDER BY updatetime DESC;

/***************end**********************/

 

/****************Merge the original data and new data of the flow_statistic table ************************ **/

/***************start**********************/

INSERT INTO flow_statistic (

idx, ipaddr1, ipaddr2, port1, port2, proto, protocol, 

down_bytes, up_bytes, flow, packet, 

up_rate, down_rate, packet_rate, updatetime

)

SELECT 

idx, ipaddr1, ipaddr2, port1, port2, proto, protocol, 

SUM(down_bytes) as down_bytes, SUM(up_bytes) as up_bytes, SUM(flow) as flow, SUM(packet) as packet,

up_rate, down_rate, packet_rate, updatetime

FROM flow_statistic

GROUP BY idx 

ORDER BY updatetime DESC;

/***************end**********************/

 

/****************Delete the old data of the flow_statistic table, leaving only the latest statistics ******************** ******/

/***************start**********************/

DELETE fd FROM flow_statistic fd INNER JOIN

(

SELECT aid FROM 

(

SELECT f.id as aid, f1.id as bid FROM flow_statistic f LEFT JOIN

(SELECT MAX(id) as id FROM flow_statistic GROUP BY idx ORDER BY id) f1

ON f.id = f1.id 

) as res

WHERE bid IS NULL ORDER BY aid

) f2

ON fd.id = f2.aid;

/***************end**********************/

 

/****************Delete flow table data**************************/

/***************start**********************/

TRUNCATE TABLE flow;

/***************end**********************/

END

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326507905&siteId=291194637