Estou montando um relatório “estado da comunidade” e pensei que seria divertido listar os emblemas de “Novo Usuário do Mês”. Aqui está minha consulta:
SELECT u.id,
b.name,
u.created_at,
ub.granted_at,
to_char(date_trunc('month', ub.granted_at), 'YYYY Mon')
from badges b
join user_badges ub on b.id = ub.badge_id
join users u on u.id = ub.user_id
where b.name like '%Month%'
order by ub.granted_at desc
Os resultados são estranhos:
| id | name | created_at | granted_at | to_char |
|---|---|---|---|---|
| 1613225 | New User of the Month | 2022-09-10T14:27:10.130Z | 2022-09-30T23:59:59.999Z | 2022 Sep |
| 1613874 | New User of the Month | 2022-09-18T21:57:19.944Z | 2022-09-30T23:59:59.999Z | 2022 Sep |
| 1611913 | New User of the Month | 2022-08-23T11:30:12.639Z | 2022-08-31T23:59:59.999Z | 2022 Aug |
| 1610355 | New User of the Month | 2022-07-30T20:12:00.342Z | 2022-07-31T23:59:59.999Z | 2022 Jul |
| 1609245 | New User of the Month | 2022-07-12T16:11:48.272Z | 2022-07-31T23:59:59.999Z | 2022 Jul |
| 1607137 | New User of the Month | 2022-06-09T23:37:46.687Z | 2022-06-30T23:59:59.999Z | 2022 Jun |
| 1607399 | New User of the Month | 2022-06-14T14:16:14.247Z | 2022-06-30T23:59:59.999Z | 2022 Jun |
Na maioria das vezes, há 2 emblemas de Novo Usuário do Mês concedidos. Note que eles são concedidos ao mesmo tempo. (Também é um pouco estranho que um usuário possa receber o emblema depois de um dia (veja o emblema de julho), mas certamente é possível que alguém comece hiperativo.)
Não me importo de reconhecer pessoas extras por boas contribuições, mas gostaria de explicar o que está acontecendo quando eu escrever isso. Também é possível que tenhamos algo estragado em nossa configuração.