פונקציות LEAD ו-LAG
שיעור 6 מתוך 13 בקורס SQL למתקדמים של Coddy.
הפונקציות Lead ו-Lag מאפשרות לנו לקבל את הערך של השורה הנוכחית בהיסט של n צעדים לאחור או n צעדים קדימה
לדוגמה, אם נרצה לחשב את היחס של חברה עבור השורה הנוכחית ולפני חודש אחד, נחלץ את הערך מלפני חודשיים:
| id | revenue | month |
| 1 | 532 | 5 |
| 2 | 492 | 6 |
| 3 | 393 | 7 |
| 4 | 723 | 8 |
SELECT id, revenue, LAG(month, 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 | 723 |
כך נוכל לחשב את היחס prev_month_revenue/revenue.
אם נשתמש במקום זאת בפונקציה LEAD, היא תיקח את החודש הבא של כל שורה:
| id | revenue | next_month_revenue |
| 1 | 532 | 492 |
| 2 | 492 | 393 |
| 3 | 393 | 723 |
| 4 | 723 |
אתגר
קלמזגנים יכולים להיות יקרים מאוד. עם הזמן הם הפכו ליעילים וחזקים יותר, אבל את המשמעות של השיפורים האלה אי אפשר לראות מיום ליום. צריך להתרחק מעט כדי לראות את השיפורים לאורך זמן.
כדי לעשות זאת, חשבו את הממוצע של efficiency ושל strength של המזגנים עבור כל id ו-month. לאחר מכן, שלפו את היחס בין efficiency ל- strength עבור החודש הנוכחי ועבור החודשיים שלפניו. לבסוף, חשבו את היחס בין היחס של החודש הנוכחי ליחס של החודשיים שלפניו. החזירו את התוצאות שבהן היחס גדול מ-1.5. תנו לעמודה הזו את השם ratio_two_months.
נסו בעצמכם
כל השיעורים ביחידה SQL למתקדמים
2פונקציות חלון חלק 1
פונקציית ROW_NUMBERקריטריון ORDER BYקריטריון PARTITION BYפונקציות LEAD ו-LAGאתגר חזרה #1אתגר חזרה #2תרגלו בעצמכם: קומפיילר Python אונליין