Estou tentando obter o número do dia distinto com um conjunto de dados que contém datas diferentes que nem sempre são consecutivas. Por exemplo, se eu tiver esses dados:
date | id
2019-01-01 | 1
2019-01-02 | 2
2019-01-02 | 3
2019-01-04 | 4
2019-01-07 | 5
2019-01-07 | 6
Eu preciso obter o número do dia, onde o número_dia é o próximo dado exclusivo do primeiro, e NÃO a contagem de dias DESDE o primeiro .. por exemplo
date | id | day_num
2019-01-01 | 1 | 1
2019-01-02 | 2 | 2
2019-01-02 | 3 | 2
2019-01-04 | 4 | 3
2019-01-07 | 5 | 4
2019-01-07 | 6 | 4
Caso de uso:
1) Preciso saber quantas datas distintas alguém registrou o horário.. então acima pude ver que o horário foi registrado em 4 dias (último day_num
valor).
2) Eu preciso ver qual dia de trabalho cada grupo de datas separado é .. por exemplo, acima posso ver que o trabalho feito em 2019-01-04 foi a 3ª vez que essa pessoa trabalhou.
para brevidade, colunas para user_id, horas etc, não são mostradas
Ao tentar descobrir isso, cheguei tão longe quanto
COUNT(1) OVER (
ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING
AND CURRENT ROW
) day_num,
.. que obviamente não está agrupando por data. Este é o PG 9.6, então eu não tenho frame_exclusion disponível .. não tenho certeza se isso teria ajudado.