دوال RANK و DENSE_RANK
جزء من قسم الأساسيات في رحلة SQL على Coddy. الدرس 65 من 72.
تُعدّ ROW_NUMBER() أحد أنواع دوال الترتيب، وهناك دالتان إضافيتان: RANK() وDENSE_RANK().
تُرقّم الدالة RANK() الصفوف مثل ROW_NUMBER()، لكنها تمنح الصفوف المتطابقة الأرقام نفسها وتتخطّى أرقامًا. تشبه DENSE_RANK() الدالة RANK()، لكنها لا تتخطّى الأرقام.
على سبيل المثال:
| id | level |
| 1 | 5 |
| 2 | 6 |
| 3 | 6 |
| 4 | 7 |
| 5 | 7 |
| 6 | 5 |
SELECT id,
ROW_NUMBER() OVER (ORDER BY level) as row_num,
RANK() OVER (ORDER BY level) as row_rank,
DENSE_RANK() OVER (ORDER BY level) as row_dense_rank
FROM table1سيُرجع هذا:
| id | row_num | row_rank | row_dense_rank |
| 1 | 1 | 1 | 1 |
| 6 | 2 | 1 | 1 |
| 2 | 3 | 3 | 2 |
| 3 | 4 | 3 | 2 |
| 4 | 5 | 5 | 3 |
| 5 | 6 | 5 | 3 |
الشرح:
ROW_NUMBER(): فريد دائمًا: 1، 2، 3، 4، 5، 6RANK():- level 5 (صفّان): يحصل كلاهما على الترتيب 1
- level 6 (صفّان): يحصل كلاهما على الترتيب 3 (يتخطّى 2)
- level 7 (صفّان): يحصل كلاهما على الترتيب 5 (يتخطّى 4)
DENSE_RANK():- level 5 (صفّان): يحصل كلاهما على الترتيب 1
- level 6 (صفّان): يحصل كلاهما على الترتيب 2 (من دون تخطٍّ)
- level 7 (صفّان): يحصل كلاهما على الترتيب 3 (من دون تخطٍّ)
التحدي
سهلالجداول والأعمدة المتاحة:
medals:region،medal_color،medal_count
أنشئ استعلامًا يعرض المنطقة، وإجمالي عدد الميداليات (مجموع جميع الميداليات بغض النظر عن اللون)، ونوعين من الترتيب:
- ترتيب
regular_rank(مع وجود فجوات) استنادًا إلى مجموع الميداليات - ترتيب
dense_rank(من دون فجوات) استنادًا إلى مجموع الميداليات
رتّب النتيجة حسب:
order by total_medals desc, region ascجرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2الشروط
أساسيات الشروطالكلمة المفتاحية ANDالكلمة المفتاحية ORالكلمة المفتاحية NOTدمج شروط متعددةالأقواسالقيم المنطقية Booleans3تنسيق محدد للنتائج
قيم Nullترتيب النتائج - الجزء الأولترتيب النتائج - الجزء الثانيمراجعة - شركة للأمن السيبرانيتحديد عدد السجلاتمراجعة - مصنع مركبات6تحديات تمهيدية
مراجعة - الانتخابات البرلمانيةمراجعة - اعتقال الشرطة للمجرمينمراجعة - حاوية مشروبات البارمراجعة - هندسة أعمدة جديدة9جداول متعددة
الربط الأساسي - الجزء الأولالربط الأساسي - الجزء الثانيمراجعة - الربط (Join)الربط الذاتي (Self Join)مراجعة - الربط الذاتي (Self Join)الاتحاد (Union)تبسيط الاستعلامات، الكلمة المفتاحية WITHمراجعة - استعلامات WITHمراجعة - مقاول العقارات12Window Functions الجزء الثاني
دوال RANK و DENSE_RANKمراجعة - RANK و DENSE_RANKدالة NTILEدوال التجميعمعيار ROWS و RANGEتدرّب بنفسك: Playground لـ SQL