我认为也是这样。
但Sam坚持认为这是网站的偏好设置:
看起来还没有关于这个的徽章。
如果你有具体的徽章标准,想要创建的话,应该为每一个在 Data & reporting 主题下提出。![]()
我认为可以举几个例子:
在一个投票帖回复中获得10票
SELECT p.user_id, p.created_at AS granted_at, p.id AS post_id
FROM post_voting_votes pvv
JOIN posts p ON p.id = pvv.votable_id
WHERE pvv.direction = 'up'
AND p.post_number <> 1
AND (:backfill OR p.id IN (:post_ids))
GROUP BY p.user_id, p.id
HAVING COUNT(*) >=10
或者一个更细致的例子,考虑“赞成票 - 反对票”的总数:
WITH vote_totals AS (
SELECT
p.user_id,
p.id AS post_id,
p.created_at AS granted_at,
(COUNT(*) FILTER (WHERE pvv.direction = 'up') - COUNT(*) FILTER (WHERE pvv.direction = 'down')) AS total
FROM post_voting_votes pvv
JOIN posts p ON p.id = pvv.votable_id
WHERE p.post_number <> 1
GROUP BY 1, 2
)
SELECT *
FROM vote_totals
WHERE total >= 10
AND (:backfill OR post_id IN (:post_ids))
这些需要进一步测试,以确保它们按预期工作。![]()
不过要考虑的一点是,总数是动态的,今天的“10”明天可能会变成“5”,如果添加了更多的反对票(对于第二个例子)。如果徽章只是基于赞成票,就像第一个例子一样,那么你可能获得了10票,但当计算了反对票后,UI只显示5票。