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