
הטקסט המלא של הדקות הראשונות בהרצאה «Qlik Join - חלק 5» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז בואו נחזור טיפה על מה שהתחלנו בשיעור הקודם, זה היה קצת מורכב ונמשיך לראות איך זה באמת קורה. אז אמרנו שבעצם זה התחיל מזה שרצינו לעשות אחוז הנחה והגדרנו אחוז הנחה לכל לקוח לכל שנה.
עשינו את זה ב-Left Join to Order, שם נמצא גם ה-Customer ID וגם ה-Order EAR. לפי שני השדות המשותפים הוא בעצם הגדיר אחוז הנחה במקרים שאליהם התייחסנו. במקרים שלא התייחסנו, השדה נשאר נ"ל.
לאחר מכן בעצם יש לנו למספר הזמנות, יש לנו אחוז הנחה, זה מה שבעצם יצרנו בטבלת אורדרס. אנחנו עשינו מפה, טבלת מיפוי, שממפה לאותם הזמנות את אחוז ההנחה, ככה שיש לנו טבלה של מספר הזמנה ואחוז הנחה, ואת המפה הזאת, או את טבלת המיפוי, רצינו להכיל על טבלת אורדר אייטמס, מכיוון ששם נמצא בעצם הסכום,
ואז מה שעשינו, עשינו left join של אורדר אייטמס לעצמו, על בסיס אורדר אייטם ID, זה השדה המובטח, יצרנו שדה חדש בשם אמאונט אפטר דיסקאונט. מה הוא מכיל? הוא מכיל את האמאונט המקורי פחות אמאונט של הסכום המקורי כפול אחוז ההנחה ואחוז ההנחה מוגדר כאפליי מאפס, זאת אומרת תכילי את המפה שיצרנו מקודם על אורדר איי די ואם אתה לא מוצא תעשה
אפס מכיוון שנגיד שהמחיר היה חמישים בסדר אז מה יהיה אחוז ההנחה ולא הגדרנו לאותו לקוח לאותה שנה אחוז הנחה מה יהיה הסכום לאחר ההנחה חמישים פחות חמישים כפול אנחנו לא רוצים לייצר אחוז הנחה וככה אנחנו מטפלים גם במקרים שאין הנחה אז הרצנו את זה בוא נראה שוב ונראה מה בעצם אנחנו מקבלים.
אז באמת בטבלת order items נוצר לנו שדה amount after discount בוא נראה מה אנחנו רואים פה אז מעניין מה שקרה יצא לנו שcustomer ריידי קצת קשה לדעת כי אנחנו לא יודעים מה הcustomer ריידי אבל בוא נראה מה בעצם אני מסתכל אני רואה שבשורה הראשונה האמרנט המכירי הוא 168, אבל האמרנט אחר דיסקאונט הוא 151.2,
זאת אומרת שיש פה הנחה, גם פה יש הנחה, 98 לעומת 88.2. פה ב-41 אין הנחה, 77 נשאר 77 וגם מיד אחרי זה 1484 נשאר 1484. אז בשביל לתחקר את זה יותר טוב אנחנו נלך לתצוגה וממש נביא את השדות שאנחנו רוצים.
נשאיר את זה ככה, אני אבטל רק את הסינון. ואני רוצה להוסיף פה את ה-order, יש לנו, בואו קצת נעשה סדר, נביא את ה-Order ID בהתחלה, Customer ID שלו, זה בסדר, את השנה.
לפני הדיסקאונט אני רוצה להביא את ה... לא, הדיסקאונט יכול להישאר פה, אני רוצה אחרי זה להביא את ה-Order Item ID. ועכשיו אני רוצה להביא את ה-Amount, נעשה את זה כ-Measure, לא, נעשה את זה כ-Dimension, זה לא משנה, אנחנו לא מבצעים פה שום סכימות.
אמונט, ואמונט אחר דיסקאונט. נגיד את זה קצת, נראה מה אנחנו רואים. באמת, כל המקרים הראשונים אתם רואים שאין דיסקאונט, האמאונט והאמאונט אפטר דיסקאונט הם זהים לגמרי זה בעצם מה שרצינו אבל אם
אני אמיין אגן דיסקאונט ואז בעצם אני מקפיץ למעלה את אלו שהיה להם הנחה אז אני באמת רואה שבאמת זה לקוח 79 2012 הגדרנו לו 5% הנחה האמאונט לפני ההנחה היה 167.4 והאמאונט אפטר דיסקאונט באמת הוא פחות כי החלנו בעצם הורדנו מה167.4 5% הנחה מה167.4 שזה יוצא 159.0.3 זה בדיוק מה שרצינו גם בשורות הבאות של 0.08, השכור המקורי
היה 109.5, אבל הוא ירד ל-100.74, אז זה עבד נפלא. כמו שאמרתי, איפה שאין דיסקאונט, אז זה בעצם הסכום של האמנונט, נשאר גם אחרי ההנחה.
מה שגם צריך ללמוד מפה, זה צריך לקחת בחשבון את כל המקרים. אם הייתי פשוט סתם שם את אחוז ההנחה, רב, יכול להיות שהייתי מקבל את הקובץ מבחוץ.
תראה זה, אני עוד שלטתי על הנתונים, אבל בדרך כלל את ההנחות אני לא אקליט בתוך הסקריפט, אז נניח שהייתי מקבל באמת את הקובץ של ההנחות, לא יודע, מאחרי שירות לקוחות או כספים, אמר לי, זה קובץ ההנחות, תטען אותו למערכת.
הוא לא היה אומר לי, ואולי הייתי שוכח לשאול, האם בעצם יש לי התייחסות לכל המקרים. ואז הייתי טוען את הקובץ ועושה את הנוסחאות, אבל בעצם מה שהיה קורה זה שאם לא הייתי מתייחס למקרים האלו, זה היה אצל עיוותים באמאונט אפטר דיסקאונט וזה יכול להיות כמובן להביא להחלטות שגויות.
אז מאוד חשוב שבכל צעד שעושים לחשוב גם על הנתונים האחרים על הנתונים השגויים שאולי קיימים במערכת ולטפל גם בהם אוקיי אז הצלחנו בדבר הזה זה עוד התקדמות בנושא של הג'וינים בעצם עד עכשיו עשינו רק לפט ג'וינ אבל יש עוד כמה סוגים של ג'וינים יש אינר ג'וינ אתם מכירים את זה מ-SQL והמשמעות היא מאוד דומה אינר ג'וינ בעצם מחבר לי רק
שיש רשומות בשני הצדדים אם יש רשומות שאין להם רשומה תואמת בטבלה השנייה הוא לא יטען