شارة بناءً على متى تمت ترقية المستخدم لأول مرة كمشرف؟

لقد قمت للتو بوضع علامة على هذا كـ #sql-triggered-badge، ولكن فكرت في التحقق مما إذا كنت تبحث عن علامة تلقائية أم لا؟ أفترض أنه قد لا يكون لديك عدد كبير من المشرفين ويمكنك ربما منح هذه العلامة يدويًا بناءً على استعلام مستكشف البيانات؟


أعتقد أن نسخة مبسطة من النسخة أعلاه يمكن أن تكون:

-- [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)

هذا سيعمل كاستعلام مستكشف بيانات بدلاً من مجموعة من العلامات SQL، ويمكنه تحديد قائمة بالمستخدمين الذين يستوفون المعايير حتى تتمكن من منحهم العلامة يدويًا.

هناك تحذير واحد وهو أنه إذا غادروا مجموعة المشرفين في أي وقت وأعادوا الانضمام، فسيتم احتساب أحدث إدراج فقط. أعتقد أنه سيكون من الممكن استخدام جدول user_histories لتجاوز ذلك، ولكن إذا كان استثناءً، فمن المحتمل أن يكون من الأسهل التعامل معه يدويًا أيضًا.