פונקציית 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 אונליין