[ create a new paste ] login | about

Link: http://codepad.org/cVXBsjNG    [ raw code | fork ]

Plain Text, pasted on Dec 12:
DROP PROCEDURE IF EXISTS  extract_data;
DELIMITER //

CREATE PROCEDURE extract_data()
BEGIN
  DECLARE not_found INT DEFAULT 0;
  DECLARE _id  INT;
  DECLARE _datetime  DATETIME;
  DECLARE _cnt  INT;
  DECLARE _ext  INT;

  DECLARE cur CURSOR FOR
    SELECT id,`datetime` FROM t_record;

  DECLARE CONTINUE HANDLER FOR NOT FOUND SET not_found = 1;

  OPEN cur;
  loop2: LOOP
    FETCH cur INTO _id, _datetime;
    IF not_found THEN
        SET not_found = 0;
        CLOSE cur;
        LEAVE loop2;
    END IF;
    SELECT COUNT(*) FROM tmpT WHERE `id`=_id AND `datetime` BETWEEN _datetime - INTERVAL 5 MINUTE AND _datetime INTO _cnt;
    IF _cnt = 0 THEN
        SET _ext = 1;
        INSERT INTO tmpT VALUES (_id, _datetime);
    END IF;
  END LOOP;

END
//
DELIMITER ;

CREATE TEMPORARY TABLE IF NOT EXISTS tmpT (`id` INT, `datetime` DATETIME);
CALL extract_data();

SELECT * FROM tmpT;



Create a new paste based on this one


Comments: