معيار PARTITION BY
جزء من قسم الأساسيات في رحلة SQL على Coddy — الدرس 59 من 72.
خيار آخر لعبارة OVER () هو PARTITION BY
تتيح لنا ترقيم الصفوف لكل مجموعة بشكل منفصل
على سبيل المثال:
| id | type |
| 132 | t1 |
| 52 | t2 |
| 92 | t1 |
| 154 | t3 |
| 198 | t1 |
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1سيؤدي هذا إلى إنشاء عمود يقوم بترقيم كل نوع داخل نفسه:
| id | type | row_num |
| 132 | t1 | 1 |
| 52 | t2 | 1 |
| 92 | t1 | 1 |
| 154 | t3 | 1 |
| 198 | t1 | 3 |
id 92 لديه row_num 1 لأنه أصغر id في type t1.
ملاحظة: يتطلب ROW_NUMBER() وجود جملة ORDER BY داخل OVER() لتحديد كيفية ترقيم الصفوف داخل كل قسم (partition).
يمكننا حتى تحديد أعمدة متعددة داخل PARTITION BY:
ROW_NUMBER() OVER (PARTITION BY type, hue ORDER BY id)التحدي
سهلالجداول والأعمدة المتاحة:
<strong>doors</strong>:<strong>id</strong>,<strong>publication_year</strong><strong>doors_specs</strong>:<strong>id</strong>,<strong>country</strong>,<strong>color</strong>
يقوم مصنع ببناء الأبواب. يحتاج المصنع إلى ترقيم الأبواب لكل مزيج من country و color التي يكون لها publication_year أصغر من 2000. قم بتسمية هذا العمود row_num.
يجب ترقيم الأبواب داخل كل مجموعة بترتيب تصاعدي حسب الـ id الخاص بها. يجب تجاهل الأبواب التي ليس لها مواصفات (specs). قم بفرز النتيجة النهائية بترتيب تصاعدي حسب الـ id.
ورقة مرجعية
استخدم PARTITION BY في OVER()</clause لترقيم الصفوف داخل المجموعات:</p>
<pre><code class="language-sql">SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type) as row_num
FROM table1
يمكنك التقسيم حسب أعمدة متعددة:
ROW_NUMBER() OVER (PARTITION BY type, hue)جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2الشروط
أساسيات الشروطالكلمة المفتاحية ANDالكلمة المفتاحية ORالكلمة المفتاحية NOTدمج شروط متعددةالأقواسالقيم المنطقية Booleans8الإحصاء
دوال التجميع المدمجة - الجزء الأولدوال التجميع المدمجة - الجزء الثانيالتجميع - الجزء الأولالتجميع - الجزء الثانيالاستعلامات الفرعية - الجزء الأولالاستعلامات الفرعية - الجزء الثانيمراجعة - متجر إجمالي الأرباحمراجعة - متجر السكوترمراجعة - متجر القهوة11دوال النافذة - الجزء الأول
دالة ROW_NUMBERمعيار ORDER BYمعيار PARTITION BYPARTITION و ORDERدوال LEAD و LAGملخص - LEAD و LAGملخص - الصورملخص - الصناديق3تنسيق محدد للنتائج
قيم Nullترتيب النتائج - الجزء الأولترتيب النتائج - الجزء الثانيمراجعة - شركة للأمن السيبرانيتحديد عدد السجلاتمراجعة - مصنع مركبات6تحديات تمهيدية
مراجعة - الانتخابات البرلمانيةمراجعة - اعتقال الشرطة للمجرمينمراجعة - حاوية مشروبات البارمراجعة - هندسة أعمدة جديدة9جداول متعددة
الربط الأساسي - الجزء الأولالربط الأساسي - الجزء الثانيمراجعة - الربط (Join)الربط الذاتي (Self Join)مراجعة - الربط الذاتي (Self Join)الاتحاد (Union)تبسيط الاستعلامات، الكلمة المفتاحية WITHمراجعة - استعلامات WITHمراجعة - مقاول العقارات12Window Functions الجزء الثاني
دوال RANK و DENSE_RANKمراجعة - RANK و DENSE_RANKدالة NTILEدوال التجميعمعيار ROWS و RANGE