
GROUPING(EmployeesCount) ו-GROUPING_ID(DepartmentName, EmployeeID) בחלק SELECT, עם ROLLUP בחלק GROUP BY. הכינוי נכתב אחרי הפונקציה, ואפשר להשתמש בו ב-ORDER BY.הטקסט המלא של הדקות הראשונות בהרצאה «פונקציות מתקדמות - Grouping» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בשיעורנו היום אנחנו ממשיכים את שיעורנו הקודם בנוגע ל-Q ורו עליו אופרטורס, בשיעור זה אנחנו נתמודד עם בעיה הנוצרת כתוצאה משימוש באופרטורים הללו ונראה כיצד שימוש בשתי פונקציות חדשות שאנחנו נכיר אותן בשיעור הזה עוזר לנו להתמודד עם הבעיה.
בואו נתחבר ל-Northwind ונגדיר לעצמנו את הכותרת של השיעור Grouping and Grouping Functions. שימו לב לשאילתה, זו שאילתה שראינו אותה בשיעור הקודם.
Customer ID, Employee ID, אנחנו סוכמים מתוך טבלת Orders, מסכמים ב-Customer ID in Works and Franks and Employee ID in 124. Go Buy or Roll-up, Employee ID ו-Customer ID.
אנחנו גם נעשה Order Buy ונריץ את השאילתה. ושאילתה זו, כפי שראינו אותה בשיעור הקודם, אנחנו בעצם מקבלים מידע מסוכן רב-מימדי על פי סדר הכתיבה של העמודות בתוך ה-Roll-up.
אנחנו מקבלים סכימה ברמה של לקוח לעובד, אנחנו מקבלים סכימה ברמה טוטאלית בהיעדר לקוח או עובד כזה או אחר, ואנחנו מקבלים סכימה, כפי שאנחנו רואים בשורות הללו, ברמה של עובד.
שימו לב, על מנת לציין שורת סכימה, וורלאפ וקיוב משתמשות בערך נ"ל כלומר בהינתן ערכי נ"ל בעמודה Customer ID אני מבין שהעמודה הזו אינה רלוונטית כי אנחנו לא סוכמים עבור עובד עבור לקוח ספציפי עבור Customer ID מסוים אלא עבור כל הלקוחות אנחנו מציגים כאן מידע ברמה של עובד כמה
מכירות סך הכל הוא ביצע כאן אנחנו יכולים לראות שעבור כל עובד אחד ביצענו תשע מכירות, שתיים מכירה אחת, וקוד עובד ארבע ביצע חמש מכירות בלבד. הערך null כאן הוא פלט הניתן לי כתוצאה משימוש באופרטור rollup ו-tube.
אולם מכאן נשאלת השאלה מה קורה כאשר בפועל אמיתית יש לי ערך null בטבלה, כיצד אני מבחין בין ערך null שהוא value שמופיע בטבלה, ערך נ"ל שהוא טבלאי לעומת ערך נ"ל שהוא רק תוצר נלווה של השימוש באופרטורים rollup of queue.
כאמור בעמודות הללו בטבלת orders אין לנו בעצם ערכי נ"ל, מכיוון שמדובר בשתי עמודות המשמשים כמפתחות ואינם מקבלים נ"ל, לכן כאן אנחנו לא מזהים את הבעיה אבל לצורך כך אני