Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

دالة ROW_NUMBER

جزء من قسم الأساسيات في رحلة SQL على Coddy. الدرس 57 من 72.

تُجري دوال النافذة حسابات عبر مجموعة من صفوف الجدول المرتبطة بالصف الحالي. وعلى خلاف دوال التجميع العادية، لا تضغط دوال النافذة النتائج في صف واحد.

تكون مفيدة بشكل خاص عندما تحتاج إلى:

  • حساب الإجماليات التراكمية
  • ترتيب العناصر ضمن المجموعات
  • مقارنة الصفوف الحالية بالصفوف السابقة/التالية
  • تحليل الاتجاهات عبر الفترات الزمنية

على سبيل المثال، إليك بعض الأمثلة الواقعية على حالات استخدام window functions:

  • تحليل المبيعات
    • احسب المبيعات التراكمية حتى كل سنة (1995، 1997، 1999)
    • اعثر على المنتجات الأكثر مبيعًا لكل ربع سنة
  • الإحصاءات الرياضية
    • تتبّع أعداد الميداليات الأولمبية عبر السنوات المختلفة
    • حدّد الرياضيين المتصدّرين في كل فترة من فترات المنافسة (2000، 2004، 2008)

ROW_NUMBER() هي واحدة من أبسط دوال window. فهي تُسنِد رقمًا تسلسليًا فريدًا إلى كل row في result set. إليك كيفية استخدامها:

SELECT column1, column2,
       ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;

من الضروري استخدام عبارة OVER مع ROW_NUMBER(): ROW_NUMBER() OVER ()

على سبيل المثال:

SELECT product_name, sale_date,
       ROW_NUMBER() OVER () as row_num
FROM sales;

يضيف هذا عمودًا باسم row_num يعدّ من 1 إلى العدد الإجمالي للصفوف.

ملاحظة: يمكن أن يحتوي بند OVER على تعليمات الترتيب والتقسيم للتحكم في كيفية عمل الترقيم.

challenge icon

التحدي

سهل

الجداول والأعمدة المتاحة:

  • liquids: id، density

اجلب جميع السوائل التي تزيد كثافتها عن 5.677.

رقّم النتيجة (استخدم الدالة ROW_NUMBER()) وسمِّ هذا العمود row_num

جرّب بنفسك

-- رقّم كل صف من النتيجة المُصفّاة باستخدام دالة نافذة
SELECT id, density, ____ as row_num
FROM liquids
WHERE density > ____
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ SQL