Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia pessoal !
Tenho a seguinte tabela:
-------------------------------------------------------------------------------
|Numero | Nome | Data | Ocorrencia |
________________________________________________
| 00010 | Joao | 20/10/2019 | 15 |
| 00023 | Joao | 21/10/2019 | 15 |
| 00044 | Joao | 22/10/2019 | 15 |
| 00057 | Joao | 23/10/2019 | 23 |
| 00058 | Joao | 26/10/2019 | 15 |
| 00067 | Joao | 27/10/2019 | 15 |
| 00089 | Paulo | 01/10/2019 | 10 |
________________________________________________
Preciso de uma consulta que me retorne quantas vezes houve a mesma ocorrência sequencialmente, informando o dia da primeira ocorrência e quantas vezes se repetiu ou então que dia iniciou e que dia terminou a mesma ocorrência em data sequencial, assim:
___________________________________________
| Nome | Dia_Inicio | Qtd | Ocorrencia |
___________________________________________
| Joao | 20/10/2019 | 03 | 15 |
| Joao | 23/10/2019 | 01 | 23 |
| Joao | 26/10/2019 | 02 | 15 |
| Paulo | 01/10/2019 | 01 | 10 |
____________________________________________
Ou assim
_____________________________________________________
| Nome | Dia_Inicio | Dia _Final | Ocorrencia |
_____________________________________________________
| Joao | 20/10/2019 | 22/10/2019 | 15 |
| Joao | 23/10/2019 | 23/10/2019 | 23 |
| Joao | 26/10/2019 | 27/10/2019 | 15 |
| Paulo | 01/10/2019 | 01/10/2019 | 10 |
_____________________________________________________
Em minhas tentativas consegui somar a mesma ocorrência para o mesmo nome, mas não separa por data sequencial.
Alguem poderia me auxiliar nessa consulta?
Obrigado
Acho que poderá ser por windows functions , com LAG ou LEAD e verificando se diferença de data é 1 , veja istoparece similar.
Segue exemplo:
TABELAS A SER UTILIZADAS:
('Joao', '2019-10-20', 15), ('Joao', '2019-10-21', 15), ('Joao', '2019-10-22', 15), ('Joao', '2019-10-23', 23), ('Joao', '2019-10-26', 15), ('Joao', '2019-10-27', 15),('Joao 2', '2019-10-26', 15),
FROM
ocorrencias
WHERE
data>= '2019-10-20'GROUP BY
ocorrencia, nome
RESULTADO: