Estoy recopilando un informe sobre el “estado de la comunidad” y pensé que sería divertido enumerar las insignias de “Nuevo Usuario del Mes”. Aquí está mi 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
Los resultados son extraños:
| 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 |
La mayoría de las veces, se otorgan 2 insignias de Nuevo Usuario del Mes. Tenga en cuenta que se otorgan al mismo tiempo. (También es un poco extraño que se pueda otorgar una insignia a un usuario después de un día (vea la insignia de julio), pero ciertamente es posible que alguien comience siendo hiperactivo).
No me importa reconocer a personas adicionales por sus buenas contribuciones, pero me gustaría explicar lo que está sucediendo cuando escriba esto. También es posible que tengamos algo mal configurado.