Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Como selecionar registro duplicados por um intervalo de 1 min

Olá estou com o seguinte problema precisando de uma luz.

Tenho um banco de dados que é responsável por armazenar a entrada de funcionários com data e hora, mas devido a um erro no sistema esses registros foram duplicados com intervalos de minutos diferente. E agora eu preciso selecionar apenas os registros duplicados que tenham um intervalo de cerca de 1 minuto.

Alguém pode me dar uma luz? desde já agradeço.

2 respostas
solução

Apesar de não trabalhar com Oracle (eu trabalho com SQL Server), vou dar uma luz

Supondo que a tabela tenha a seguinte estrutura:

ID - FUNCIONARIO - TIPO - DATA_HORA

1  -  FULANO   - ENTRADA - 2019-07-18 08:02:10
2  -  FULANO   - ENTRADA - 2019-07-18 08:03:15

Você poderia pegar as duplicidades da seguinte forma:


SELECT FUNCIONARIO, MAX(ID) as repetido
from minha_tabela WHERE tipo = 'ENTRADA' and DATA_HORA BETWEEN '2019-07-18 07:00:00' AND '2019-07-18 11:00:00'
GROUP BY FUNCIONARIO
HAVING COUNT(*) > 1

Esta consulta retornaria o ID do registro repetido dos funcionários que tenham mais de uma 'ENTRADA' no período informado

Obrigada pela ajuda, Daniel Bins, consegui criar um script que deu uma solução provisória.