اختيار أفضل 3 صفوف من فئات متعددة في MySQL
قد يكون تحديد الصفوف العليا من كل فئة داخل الجدول أمرًا صعبًا. إحدى الطرق التي تستخدم طرق العرض والاستعلامات الفرعية، كما هو موضح في المحاولة الأولية، قد تؤدي إلى نتائج غير صحيحة.
يستخدم النهج الأكثر فعالية وظائف تحليلية، والتي لا يدعمها MySQL أصلاً. ومع ذلك، من الممكن محاكاة هذه الوظائف باستخدام المتغيرات. وإليك الطريقة:
SELECT x.*
FROM (
SELECT t.*,
CASE
WHEN @category != t.category THEN @rownum := 1
ELSE @rownum := @rownum 1
END AS rank,
@category := t.category AS var_category
FROM TBL_ARTIKUJT t
JOIN (SELECT @rownum := NULL, @category := '') r
ORDER BY t.category
) x
WHERE x.rank يقوم هذا الاستعلام بتهيئة المتغيرات @rownum و@category باستخدام عملية JOIN. ثم يقوم بعد ذلك بتعيين تصنيف لكل صف بناءً على فئته، مع زيادة الترتيب إذا تغيرت الفئة.
أخيرًا، يحدد الاستعلام فقط الصفوف ذات الترتيب 3 أو أقل. لاحظ أنك قد تحتاج إلى تعديل جملة SELECT x.* لتشمل الأعمدة المطلوبة فقط.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3