Menu
Coddy logo textTech

פונקציות צבירה

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

פונקציות צבירה משמשות לחישוב AVG() או MAX() או כל פונקציית צבירה אחרת עד לשורה הנוכחית.
לדוגמה, נוכל לחשב את ההכנסה המרבית שהתקבלה עד לכל תקופת סיום:

חודשהכנסותאזור
440מזרח
520מזרח
660מערב
755מערב
861מזרח
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1

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

חודשהכנסותmax_revenue
44040
52040
66060
75560
86161

בחודשים 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
44040
52030
66040
75543.75
86147.2

אנחנו יכולים גם לקבץ את החישובים שלנו לפי קטגוריות מסוימות באמצעות PARTITION BY. לדוגמה:

SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1

ייתן לנו:

monthrevenueregionmax_revenue
440East40
520East40
660West60
755West60
861East61

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

challenge icon

אתגר

קל

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

  • books: book, page, words

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

  1. את המספר המרבי של מילים שנמצאו בעמוד כלשהו באותו ספר
  2. את מספר המילים הממוצע לעמוד בספר כולו
  3. את ההפרש בין מספר המילים בעמוד הנוכחי למספר המילים הממוצע לעמוד בספר

הצג את התוצאות לפי סדר הספר ומספר העמוד.

החזר את העמודות הבאות:

  • book
  • page
  • words
  • max_words_in_book
  • avg_words_per_page
  • diff_from_avg

נסו בעצמכם

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

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

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

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