الفروق في خيارات ترتيب النتيجة

مرحباً،

هل يعرف أحد الفروقات بين خيارات dense_rank / rank / row_number في استراتيجية ترتيب الدرجات؟

إعجاب واحد (1)

row_number () → bigint
تُرجع رقم الصف الحالي ضمن القسم الخاص به، بدءًا من 1.

rank () → bigint
تُرجع رتبة الصف الحالي، مع وجود فجوات؛ أي، row_number للصف الأول في مجموعته النظيرة.

dense_rank () → bigint
تُرجع رتبة الصف الحالي، بدون فجوات؛ تقوم هذه الدالة بإحصاء المجموعات النظيرة بشكل فعال.

بشكل أساسي، يغير هذا كيفية التعامل مع التعادلات.

  • في row_number، لا توجد تعادلات.
  • في rank، إذا كان هناك تعادلان في الموضع 5، فسيكون الموضع التالي هو 7 حيث تم تخطي الموضع 6.
  • في dense_rank، إذا كان هناك تعادلان في الموضع 5، فسيكون الموضع التالي هو 6.
4 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.