شبكة تعلم مع ناو

ما فائدة الدالة RANK() في SQL؟

الدالة RANK() تعطي كل صف ترتيبًا حسب قيمة عمود معين:

SELECT name, score,
       RANK() OVER (ORDER BY score DESC) AS position
FROM players;

ماذا يحدث مع القيم المتساوية؟

إذا تساوى لاعبان، يأخذان الترتيب نفسه، ويُترك فراغ بعدهما:

score 90 → 1
score 85 → 2
score 85 → 2
score 80 → 4

الدوال الثلاث

  • RANK(): 1، 2، 2، 4.
  • DENSE_RANK(): 1، 2، 2، 3 (دون فراغ).
  • ROW_NUMBER(): 1، 2، 3، 4 (رقم مختلف دائمًا).

ومع PARTITION BY يُحسب الترتيب داخل كل مجموعة على حدة.

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.