Eu tenho um banco de dados SQLite, vamos supor que o id possa ser considerado como a ordem das linhas, quero encontrar sequências repetidas na tabela de acordo com determinados critérios.
considere este exemplo ( http://sqlfiddle.com/#!5/dbdb0/1 )
esquema + dados:
CREATE TABLE eventLog
(
id integer primary key autoincrement,
type varchar(20),
details varchar(30)
);
INSERT INTO eventLog
(type, details)
VALUES
('power', 'power on');
INSERT INTO eventLog
(type, details)
VALUES
('cleaner', 'cleaning started');
INSERT INTO eventLog
(type, details)
VALUES
('cleaner', 'cleaning finished');
INSERT INTO eventLog
(type, details)
VALUES
('power', 'power off');
INSERT INTO eventLog
(type, details)
VALUES
('power', 'power on');
INSERT INTO eventLog
(type, details)
VALUES
('cleaner', 'cleaning started');
INSERT INTO eventLog
(type, details)
VALUES
('power', 'power off');
Consulta básica:
select * from eventLog
order by id asc
Destaquei algumas sequências: se eu olhar as sequências repetidas em "detalhes" o resultado deverá ser os ids: [1,2][5,6] e se eu olhar a coluna "tipo" o resultado deverá ser [[ 1,2][5,6]],[[3,4][6,7]].
Existe uma maneira de consultar sequências repetidas sem programação externa - usando apenas SQL?