“커뮤니티 현황” 보고서를 작성하고 있는데, “이달의 신규 사용자” 배지를 나열해 보는 것도 재미있을 것 같아. 다음이 내 쿼리야:
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
결과가 좀 이상해:
| 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 |
대부분의 경우 “이달의 신규 사용자” 배지가 2개 수여되는 걸 볼 수 있어. 참고로 배지 수여 시점이 동일하다. (사용자가 하루 뒤에 배지를 받는 경우도 있는데, 7월 배지를 보면 그런 경우가 있어. 하지만 누군가가 처음부터 매우 활발하게 활동할 수도 있으므로 충분히 가능한 일이지.)
좋은 기여를 한 추가적인 사람들을 인정하는 건 괜찮지만, 이 보고서를 작성할 때 어떤 일이 일어나고 있는지 설명하고 싶어. 또한 설정에 뭔가 문제가 있는 것도 가능해.