פונקציות צבירה
חלק מהיחידה יסודות במסלול ה-SQL של Coddy. שיעור 68 מתוך 72.
פונקציות צבירה משמשות לחישוב AVG() או MAX() או כל פונקציית צבירה אחרת עד לשורה הנוכחית.
לדוגמה, נוכל לחשב את ההכנסה המרבית שהתקבלה עד לכל תקופת סיום:
| חודש | הכנסות | אזור |
| 4 | 40 | מזרח |
| 5 | 20 | מזרח |
| 6 | 60 | מערב |
| 7 | 55 | מערב |
| 8 | 61 | מזרח |
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1פעולה זו תחזיר:
| חודש | הכנסות | max_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 40 |
| 6 | 60 | 60 |
| 7 | 55 | 60 |
| 8 | 61 | 61 |
בחודשים 4 ו-5 ההכנסה המרבית היא 40, בחודשים 6 ו-7 היא 60, ובחודש 8 היא 61. הסיבה לכך היא שכאשר הוא מוצא הכנסה חדשה וגדולה יותר, הוא משליך את הישנה ומשתמש בגדולה ביותר עד כה.
עבור הפונקציה AVG() זה ייראה כך:
SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1| חודש | הכנסות | avg_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 30 |
| 6 | 60 | 40 |
| 7 | 55 | 43.75 |
| 8 | 61 | 47.2 |
אנחנו יכולים גם לקבץ את החישובים שלנו לפי קטגוריות מסוימות באמצעות PARTITION BY. לדוגמה:
SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1ייתן לנו:
| month | revenue | region | max_revenue |
| 4 | 40 | East | 40 |
| 5 | 20 | East | 40 |
| 6 | 60 | West | 60 |
| 7 | 55 | West | 60 |
| 8 | 61 | East | 61 |
כעת הערך המרבי מחושב בנפרד עבור כל אזור. אזור המזרח ואזור המערב שומרים כל אחד על הערך המרבי המצטבר שלו באופן עצמאי.
אתגר
קלטבלאות ועמודות זמינות:
books:book,page,words
עבור כל ספר, הצג את שם הספר, את מספר העמודים הכולל שלו, את מספר המילים בכל עמוד, וחשב:
- את המספר המרבי של מילים שנמצאו בעמוד כלשהו באותו ספר
- את מספר המילים הממוצע לעמוד בספר כולו
- את ההפרש בין מספר המילים בעמוד הנוכחי למספר המילים הממוצע לעמוד בספר
הצג את התוצאות לפי סדר הספר ומספר העמוד.
החזר את העמודות הבאות:
bookpagewordsmax_words_in_bookavg_words_per_pagediff_from_avg
נסו בעצמכם
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
2תנאים
יסודות התנאיםמילת המפתח ANDמילת המפתח ORמילת המפתח NOTשילוב של תנאים מרוביםסוגרייםערכים בוליאניים3פורמט החזרה ספציפי
ערכי Nullמיון תוצאות – חלק 1מיון תוצאות – חלק 2סיכום – חברת אבטחת סייברהגבלת מספר הרשומותסיכום – מפעל כלי רכב6אתגרי מבוא
חזרה – בחירות לפרלמנטחזרה – מעצר חשוד בידי המשטרהחזרה – כלי משקה בברחזרה – מהנדסים עמודות חדשות9טבלאות מרובות
JOIN בסיסי חלק 1JOIN בסיסי חלק 2סיכום – JOINJOIN עצמיסיכום – JOIN עצמיאיחוד (UNION)פישוט שאילתות באמצעות מילת המפתח WITHסיכום – שאילתות WITHסיכום – קבלן נדל״ן12פונקציות חלון חלק 2
פונקציות RANK ו-DENSE_RANKסיכום – RANK ו-DENSE_RANKפונקציית NTILEפונקציות צבירהקריטריון ROWS ו-RANGEתרגלו בעצמכם: SQL אונליין