Menu
Coddy logo textTech

פונקציית ROW_NUMBER

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

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

הן שימושיות במיוחד כשצריך:

  • לחשב סכומים מצטברים
  • לדרג פריטים בתוך קבוצות
  • להשוות בין שורות נוכחיות לשורות קודמות או הבאות
  • לנתח מגמות לאורך תקופות זמן

לדוגמה, הנה כמה דוגמאות מהעולם האמיתי למקרי שימוש בפונקציות חלון:

  • ניתוח מכירות
    • חשבו את המכירות המצטברות עד כל שנה (1995, 1997, 1999)
    • מצאו את המוצרים הנמכרים ביותר בכל רבעון
  • סטטיסטיקות ספורט
    • עקבו אחר מספר המדליות האולימפיות לאורך שנים שונות
    • זהו את הספורטאים המובילים בכל תקופת תחרות (2000, 2004, 2008)

ROW_NUMBER() היא אחת מפונקציות החלון הפשוטות ביותר. היא מקצה מספר רציף ייחודי לכל שורה בקבוצת התוצאות. כך משתמשים בה:

SELECT column1, column2,
       ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;

חובה להשתמש בסעיף OVER עם ROW_NUMBER() : ROW_NUMBER() OVER ()

לדוגמה:

SELECT product_name, sale_date,
       ROW_NUMBER() OVER () as row_num
FROM sales;

פעולה זו מוסיפה עמודת row_num שסופרת מ־1 ועד למספר הכולל של השורות.

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

challenge icon

אתגר

קל

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

  • liquids: id, density

אחזר את כל הנוזלים שצפיפותם גדולה מ-5.677.

מספר את התוצאה (השתמש בפונקציה ROW_NUMBER()) וקרא לעמודה זו row_num

נסו בעצמכם

-- מספרו כל שורה בתוצאה המסוננת באמצעות פונקציית חלון
SELECT id, density, ____ as row_num
FROM liquids
WHERE density > ____
quiz iconבחנו את עצמכם

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

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

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