これもそうだと思います。
しかし、サムはそれが事実だと断言しています:
これに対するバッジはまだないようです。
作成したい特定のバッジ基準があれば、それぞれについて#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」になる可能性があるということです(2番目の例)。そして、バッジが最初の例のように賛成票のみに基づいている場合、反対票を合計するとUIには5しか表示されなくても、10票獲得した可能性があります。