Menu
CoddyTech

פונקציית NTILE

חלק מהיחידה יסודות במסלול ה-SQL של Coddy. שיעור 67 מתוך 72.

NTILE(n) ממספרת את השורות על ידי חלוקתן ל־n חלקים שווים בקירוב. משתמשים בה לעיתים קרובות לשיפור הביצועים — שליחת כמויות גדולות של נתונים בבת אחת עשויה להיות רעיון לא טוב, ולכן הפונקציה הזו מאפשרת לשלוח בכל פעם חלקים קטנים יותר.

לדוגמה:

idlevel
14
24
35
46
57
67
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1

פעולה זו תחזיר:

idlevelpieces
141
241
352
462
573
673

קיבלנו 3 חלקים: רמה 4 בחלק 1, רמות 5 ו-6 בחלק 2, ורמה 7 בחלק 3.
כאשר מספר השורות אינו מתחלק באופן שווה ב-n, NTILE מחלק את השורות באופן שווה ככל האפשר, כאשר הקבוצות הגדולות יותר מופיעות ראשונות. לדוגמה, אם יש לך 9 שורות ו-NTILE(4), החלוקה תהיה:

  • קבוצה 1: 3 שורות
  • קבוצה 2: 2 שורות
  • קבוצה 3: 2 שורות
  • קבוצה 4: 2 שורות

כך מובטח שמספר השורות בכל קבוצה לא יהיה שונה ביותר משורה אחת ממספר השורות בכל קבוצה אחרת, ושורות עודפות יחולקו תחילה לקבוצות שמספרן נמוך יותר.

challenge icon

אתגר

קל

טבלאות ועמודות זמינות:

  • creatures: creature_name, preference, has_legs (מכיל 'YES' או 'NO')

באתגר הזה יש לנו יצורים שרוצים למצוא בן או בת זוג. אנחנו צריכים לעזור להם למצוא התאמה.

לכל יצור יש העדפה שמיוצגת כמספר. אם המספרים של שני היצורים קרובים מספיק, הם עשויים להתאים זה לזה.

חלק את היצורים ל-3 קבוצות לפי ערכי ההעדפה שלהם, אך התחשב רק ביצורים שיש להם רגליים (כאשר has_legs = 'YES'). החזר את creature_name, את preference ואת group_number שלהם (1, 2 או 3). מיין את התוצאות לפי preference בסדר עולה.

נסו בעצמכם

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: SQL אונליין