פונקציית 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 יכול להכיל הוראות למיון ולחלוקה למחיצות, כדי לשלוט באופן שבו המספור פועל.
אתגר
קלטבלאות ועמודות זמינות:
liquids:id,density
אחזר את כל הנוזלים שצפיפותם גדולה מ-5.677.
מספר את התוצאה (השתמש בפונקציה ROW_NUMBER()) וקרא לעמודה זו row_num
נסו בעצמכם
-- מספרו כל שורה בתוצאה המסוננת באמצעות פונקציית חלון
SELECT id, density, ____ as row_num
FROM liquids
WHERE density > ____השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
2תנאים
יסודות התנאיםמילת המפתח ANDמילת המפתח ORמילת המפתח NOTשילוב של תנאים מרוביםסוגרייםערכים בוליאניים8סטטיסטיקה
פונקציות צבירה מובנות חלק 1פונקציות צבירה מובנות חלק 2קיבוץ חלק 1קיבוץ חלק 2שאילתות משנה חלק 1שאילתות משנה חלק 2סיכום – חנות הרווח הכוללסיכום – חנות הקורקינטיםסיכום – בית הקפה11פונקציות חלון חלק 1
פונקציית ROW_NUMBERקריטריון ORDER BYקריטריון PARTITION BYPARTITION ו-ORDERפונקציות LEAD ו-LAGסיכום – LEAD ו-LAGסיכום – תמונותסיכום – תיבות3פורמט החזרה ספציפי
ערכי Nullמיון תוצאות – חלק 1מיון תוצאות – חלק 2סיכום – חברת אבטחת סייברהגבלת מספר הרשומותסיכום – מפעל כלי רכב6אתגרי מבוא
חזרה – בחירות לפרלמנטחזרה – מעצר חשוד בידי המשטרהחזרה – כלי משקה בברחזרה – מהנדסים עמודות חדשותתרגלו בעצמכם: SQL אונליין