Ho appena taggato questo come sql-triggered-badge, ma ho pensato di verificare se stai cercando uno automatico o meno? Presumo che tu non abbia un gran numero di mod e potresti magari concedere questo badge manualmente in base a una query del data explorer?
Penso che una versione semplificata di quella sopra potrebbe essere:
-- [params]
-- int :years
WITH time_in_mod_group AS (
SELECT
user_id,
(CURRENT_DATE - created_at::date) AS days_as_mod
FROM group_users
WHERE group_id = 2 -- group id of the 'moderator' group
AND user_id > 0 -- exclude system users and bots
)
SELECT
user_id,
days_as_mod
FROM time_in_mod_group
WHERE days_as_mod > (365 * :years)
Questa funzionerebbe come una query del data explorer piuttosto che come un set di badge SQL, e può selezionare un elenco di utenti che soddisfano i criteri in modo da poter concedere loro manualmente il badge.
C’è un’unica avvertenza: se hanno lasciato il gruppo mod in qualsiasi momento e si sono riuniti, conterebbe solo l’ultima inclusione. Penso che sarebbe possibile utilizzare la tabella user_histories per aggirare questo problema, ma se è un’eccezione, è probabile che sia più facile tenerne conto manualmente.