Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

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.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software