متابعة للنقاش من استعلامات الشارات الافتراضية:
أحاول إنشاء شارة فضية لـ 10 تعديلات ويكي (عبر جميع المشاركات) وشارة ذهبية لـ 100 تعديل ويكي - ومع ذلك، لم أحصل أنا ولا مساعد المنتدى على أي نتيجة.
هل لديك أي اقتراحات؟
متابعة للنقاش من استعلامات الشارات الافتراضية:
أحاول إنشاء شارة فضية لـ 10 تعديلات ويكي (عبر جميع المشاركات) وشارة ذهبية لـ 100 تعديل ويكي - ومع ذلك، لم أحصل أنا ولا مساعد المنتدى على أي نتيجة.
هل لديك أي اقتراحات؟
لقد كنت ألعب بهذا النوع من التنسيق لتجنب مشكلة MIN/MAX في تخصيص تاريخ granted_at خاطئ عند إدخال شارة في “منتصف التدفق” (تميل إلى العمل بشكل أفضل عندما لا يكون الأشخاص قد حققوا المعايير بالفعل قبل تقديم الشارة).
لذا ربما شيء مثل هذا:
SELECT
user_id,
created_at granted_at
FROM (
SELECT
pr.user_id,
pr.created_at,
ROW_NUMBER() OVER (PARTITION BY pr.user_id ORDER BY pr.created_at) as row_number
FROM post_revisions pr
INNER JOIN badge_posts p ON p.id = pr.post_id
WHERE p.wiki = TRUE
AND pr.hidden = FALSE
AND pr.user_id > 0
) AS revisions
WHERE row_number = 100
(لم أقم بتضمين “لا تشمل المواضيع أو المشاركات المحذوفة” المعتادة لأن التعديلات على المقالات القديمة يجب أن تُحتسب. لم أضف الملء الخلفي أيضًا، ولكن أعتقد أن هذا سيكون “تحديث يومي” كمنشط؟)
جميل! هل هو لعمل 100 تعديل عبر منشورات الويكي، أم تعديل 100 منشور ويكي؟
هذا يعني 100 مراجعة لمنشورات الويكي، لذا فإن تعديل منشور واحد مائة مرة (أو مائة ومرة واحدة) سيؤدي إلى الحصول على الشارة.
بعد القليل من التفكير الإضافي (واجتماع صغير مع بيرت
) أعتقد أن ROW_NUMBER سيكون الخيار الأفضل لهذا. سأقوم بتحرير الاستعلام أعلاه. ![]()
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.