פונקציית NTILE
שיעור 10 מתוך 13 בקורס SQL למתקדמים של Coddy.
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(n) אינו מתחלק במספר השורות בטבלה: נניח שיש בטבלה 9 שורות ו-n הוא 4, הפונקציה תכניס כמה שיותר שורות לחלק האחרון.
אתגר
בינוניבאתגר הזה יש לנו יצורים שרוצים למצוא בן או בת זוג. אנחנו צריכים לעזור להם למצוא התאמה.
לכל יצור יש העדפה שמיוצגת כמספר. אם המספרים של שני היצורים קרובים מספיק, הם עשויים להתאים זה לזה.
מצאו את הזוגות המתאימים ביותר. צרו עמודה חדשה בשם couple_matcher שממוספרת מאחת ועד למספר היצורים חלקי שתיים, כך שלכל זוג יהיה אותו מספר. אפשר ליצור זוגות רק אם לאחד היצורים יש רגליים ולשני אין.
מיינו את התוצאה בסדר עולה לפי couple_matcher ו-creature_name.
נסו בעצמכם
כל השיעורים ביחידה SQL למתקדמים
תרגלו בעצמכם: קומפיילר Python אונליין