פונקציות LEAD ו-LAG
חלק מהיחידה יסודות במסלול ה-SQL של Coddy. שיעור 61 מתוך 72.
הפונקציות LEAD ו־LAG מאפשרות לנו לגשת לערך של השורה הנוכחית בהיסט של n צעדים לאחור או n צעדים קדימה.
לדוגמה, אם נרצה לחשב את היחס בין ההכנסה של חברה בשורה הנוכחית לבין ההכנסה שלה לפני חודש, נוכל לחלץ את הערך מהחודש הקודם:
| id | revenue | month |
| 1 | 532 | 5 |
| 2 | 492 | 6 |
| 3 | 393 | 7 |
| 4 | 723 | 8 |
SELECT id, revenue, LAG(revenue, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY idפעולה זו תיצור את הטבלה הבאה:
| id | revenue | prev_month_revenue |
| 1 | 532 | |
| 2 | 492 | 532 |
| 3 | 393 | 492 |
| 4 | 723 | 393 |
כך נוכל לחשב את היחס prev_month_revenue/revenue.
אם במקום זאת נשתמש בפונקציה LEAD, היא תיקח את ההכנסה של החודש הבא מכל שורה:
SELECT id, revenue, LEAD(revenue, 1) OVER (ORDER BY MONTH) as next_month_revenue
FROM table1 ORDER BY id| id | revenue | next_month_revenue |
| 1 | 532 | 492 |
| 2 | 492 | 393 |
| 3 | 393 | 723 |
| 4 | 723 |
אתגר
קלטבלאות ועמודות זמינות:
air_conditioners:id,efficiency,strength,month
השווה את היעילות של כל מזגן ליעילות של המזגן הקודם.
כתוב שאילתה שמציגה את היעילות של כל מזגן לצד היעילות של המזגן הקודם שהותקן (בהתבסס על id). חשב גם את ההפרש ביעילות בין המזגן הנוכחי לקודם. מיין את התוצאה לפי id ו-efficiency בסדר עולה.
עמודות הפלט הצפויות:
idefficiencyprevious_efficiency(באמצעות LAG)efficiency_difference(היעילות הנוכחית - היעילות הקודמת)
לבסוף, עטוף את השאילתה וסנן את השורה הראשונה, שבה previous_efficiency (ולכן גם efficiency_difference) ריק, כלומר NULL:
SELECT * FROM (
-- Your query here
)
WHERE previous_efficiency IS NOT NULLנסו בעצמכם
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
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 אונליין