Content text Advanced SQL Presentation.pdf
פונקציות דירוג / חלון Ranking / Window Functions © כל הזכויות שמורות לנאיה פ.א.י טכנולוגיות
© כל הזכויות שמורות לנאיה פ.א.י טכנולוגיות פונקציות דירוג - Functions Ranking • פונקציות דירוג \ חלון הן פונקציות המאפשרות דירוג של רשומות על פי תעדוף המשתמש. לפונקציות הדירוג שימושים שונים ולכל אחת מהפונקציות צורת פעולה שונה. • פונקציות הדירוג שנלמד הן - ROW_NUMBER • DENSE_RANK • RANK • NTILE • • שימושים ידועים – • מספרי שורות • דירוג לקוחות • יצירת היררכיה • סינון ראשון \ אחרון
© כל הזכויות שמורות לנאיה פ.א.י טכנולוגיות פונקציות דירוג – אופן כתיבה פונקציות הדירוג נכתבות בסדר הבא: .1 שם הפונקציה + סוגריים ריקים .2 פקודת ה – OVER מלווה בסוגריים כאשר בתוך הסוגריים יכנסו שתי פקודות .1 BY PARTITION – פקודה האחראית על חלוקה לתתי קבוצות (ניתן להכניס אופציונלית . יותר מעמודה אחת, דומה לפונקציונליות של DISTINCT (- פקודה .2 BY ORDER – פקודה האחראית על סדר הדירוג בתוך תת הקבוצה – פקודת חובה. במידה ונרצה להשיג דירוג של הזמנות לכל לקוח ולסדר את הדירוג על פי תאריך הזמנה, נכתוב את הפקודה בצורה הבאה: SELECT CustomerID, OrderID, ROW_NUMBER() OVER (PARTITION BY CustomerID ORDER BY OrderDate) FROM Orders
4 • פונקציה זו מוגדרת כעמודה נפרדת ומחזירה מספר שורה על פי הסידור המתבקש • אין חזרות, אין מרווחים! SELECT OrderID, CustomerID, ROW_NUMBER() OVER (ORDER BY CustomerID) AS Num FROM Orders WHERE OrderID < 10400 AND CustomerID <= 'BN' © כל הזכויות שמורות לנאיה פ.א.י טכנולוגיות מספר שורה - ()NUMBER_ROW הכרזה על פונקציית חלון לקבלת מספר שורה סידור התוצאות על פי מספר לקוח ללא חלוקה לתת קבוצות