我正在整理一份“社区现状”报告,我认为列出“每月新用户”徽章会很有趣。这是我的查询:
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 | 每月新用户 | 2022-09-10T14:27:10.130Z | 2022-09-30T23:59:59.999Z | 2022 Sep |
| 1613874 | 每月新用户 | 2022-09-18T21:57:19.944Z | 2022-09-30T23:59:59.999Z | 2022 Sep |
| 1611913 | 每月新用户 | 2022-08-23T11:30:12.639Z | 2022-08-31T23:59:59.999Z | 2022 Aug |
| 1610355 | 每月新用户 | 2022-07-30T20:12:00.342Z | 2022-07-31T23:59:59.999Z | 2022 Jul |
| 1609245 | 每月新用户 | 2022-07-12T16:11:48.272Z | 2022-07-31T23:59:59.999Z | 2022 Jul |
| 1607137 | 每月新用户 | 2022-06-09T23:37:46.687Z | 2022-06-30T23:59:59.999Z | 2022 Jun |
| 1607399 | 每月新用户 | 2022-06-14T14:16:14.247Z | 2022-06-30T23:59:59.999Z | 2022 Jun |
大多数时候,会颁发 2 个每月新用户徽章。请注意,它们是同时颁发的。(用户在一天后获得徽章(参见七月徽章)也很奇怪,但对于一个刚开始就非常活跃的人来说,这当然是可能的。)
我不介意表彰更多做出贡献的人,但在撰写报告时,我想解释一下发生了什么。也有可能我们的配置有问题。