פונקציית 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 שורות
כך מובטח שאף קבוצה לא תהיה שונה ביותר משורה אחת מכל קבוצה אחרת, ושורות נוספות יחולקו קודם לקבוצות שמספריהן נמוכים יותר.
אתגר
קלטבלאות ועמודות זמינות:
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שילוב של תנאים מרוביםסוגרייםערכים בוליאניים3פורמט החזרה ספציפי
ערכי Nullמיון תוצאות – חלק 1מיון תוצאות – חלק 2סיכום – חברת אבטחת סייברהגבלת מספר הרשומותסיכום – מפעל כלי רכב6אתגרי מבוא
חזרה – בחירות לפרלמנטחזרה – מעצר חשוד בידי המשטרהחזרה – כלי משקה בברחזרה – מהנדסים עמודות חדשות9טבלאות מרובות
JOIN בסיסי חלק 1JOIN בסיסי חלק 2סיכום – JOINJOIN עצמיסיכום – JOIN עצמיאיחוד (UNION)פישוט שאילתות באמצעות מילת המפתח WITHסיכום – שאילתות WITHסיכום – קבלן נדל״ן12פונקציות חלון חלק 2
פונקציות RANK ו-DENSE_RANKסיכום – RANK ו-DENSE_RANKפונקציית NTILEפונקציות צבירהקריטריון ROWS ו-RANGEתרגלו בעצמכם: SQL אונליין