Menu
Coddy logo textTech

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