Ich habe dies gerade als sql-triggered-badge markiert, aber ich dachte, ich frage nach, ob Sie ein automatisches suchen oder nicht? Ich gehe davon aus, dass Sie nicht viele Mods haben und dies vielleicht manuell basierend auf einer Data Explorer-Abfrage gewähren könnten?
Ich denke, eine vereinfachte Version der obigen könnte sein:
-- [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)
Diese würde als Data Explorer-Abfrage funktionieren und nicht als eine Reihe von SQL-Badges, und sie kann eine Liste von Benutzern auswählen, die die Kriterien erfüllen, damit Sie ihnen den Badge manuell gewähren können.
Es gibt eine Einschränkung, dass, wenn sie die Mod-Gruppe zu irgendeinem Zeitpunkt verlassen und wieder beigetreten sind, nur die letzte Aufnahme gezählt würde. Ich denke, es wäre möglich, die Tabelle user_histories zu verwenden, um dies zu umgehen, aber wenn es eine Ausnahme ist, ist es wahrscheinlich einfacher, dies auch manuell zu berücksichtigen.