دالة NTILE
جزء من قسم الأساسيات في رحلة SQL على Coddy. الدرس 67 من 72.
تُرقّم NTILE(n) الصفوفَ من خلال تقسيمها إلى n أجزاء متساوية تقريبًا. وغالبًا ما تُستخدم لتحسين الأداء؛ إذ قد لا يكون إرسال كميات كبيرة من البيانات دفعةً واحدة فكرةً جيدة، لذا تتيح هذه الدالة إرسال أجزاء أصغر في كل مرة.
على سبيل المثال:
| id | level |
| 1 | 4 |
| 2 | 4 |
| 3 | 5 |
| 4 | 6 |
| 5 | 7 |
| 6 | 7 |
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1سيُرجع هذا:
| id | level | pieces |
| 1 | 4 | 1 |
| 2 | 4 | 1 |
| 3 | 5 | 2 |
| 4 | 6 | 2 |
| 5 | 7 | 3 |
| 6 | 7 | 3 |
حصلنا على 3 قطع: level 4 في القطعة 1، وlevel 5 وlevel 6 في القطعة 2، وlevel 7 في القطعة 3.
عندما لا يكون عدد الصفوف قابلاً للقسمة بالتساوي على n، توزّع NTILE الصفوف بالتساوي قدر الإمكان، مع ظهور المجموعات الأكبر أولًا. على سبيل المثال، إذا كان لديك 9 صفوف وNTILE(4)، فسيكون التوزيع كما يلي:
- المجموعة 1: 3 صفوف
- المجموعة 2: صفّان
- المجموعة 3: صفّان
- المجموعة 4: صفّان
يضمن هذا ألا تختلف أي مجموعة عن أي مجموعة أخرى بأكثر من صف واحد، وأنه يتم توزيع الصفوف الإضافية على المجموعات ذات الأرقام الأقل أولًا.
التحدي
سهلالجداول والأعمدة المتاحة:
creatures:creature_name،preference،has_legs(يحتوي على 'YES' أو 'NO')
في هذا التحدي، لدينا مخلوقات تريد العثور على شريك مناسب. نحتاج إلى مساعدتها في العثور على شريكها.
لكل مخلوق تفضيل ممثل برقم. إذا كان لدى كلا المخلوقين رقمان متقاربان بدرجة كافية، فقد يكونان تطابقًا جيدًا.
قسّم المخلوقات إلى 3 مجموعات استنادًا إلى قيم التفضيل الخاصة بها، ولكن ضع في الاعتبار فقط المخلوقات التي لها أرجل (حيث يكون has_legs = 'YES'). أعد creature_name وpreference وgroup_number الخاص بها (1 أو 2 أو 3). رتّب النتائج حسب preference بترتيب تصاعدي.
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
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