
הטקסט המלא של הדקות הראשונות בהרצאה «Qlik Join - חלק 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שוב שלום, אנחנו ממשיכים בנושא הג'וינים, החיבור בין שתי טבלאות לטבלה אחת, התאחד אותם לטבלה אחת, אז ראינו left join שבעצם מחבר שמאלה, זאת אומרת אני על בסיס טבלה מסוימת אני מחבר אליה עוד טבלה, הן מתאחדות לטבלה אחת, והזכרנו שבעצם צריך שיהיה שדה אחד שיקשר בין שתי הטבלאות.
בואו נחזור לסקריפט, נזכר בזה, למשל היה לנו טבלת orders ואחר כך אישרנו אותה לעצמה כדי להביא לכל לקוח, סליחה, אישרנו מטבלת קסטומרס כדי להביא לכל לקוח בעצם את ההזמנה הראשונה שלו מטבלת אורדרס.
אז עשינו left join, בעצם יצרנו שני השדות האלו בטבלת קסטומרס על בסיס קסטומר ריידי. חייב שיהיה בעצם שדה אחד מקשר בין קסטומרס לאורדרס, זה הקסטומר ריידי שיש לנו גם פה ויש לנו גם פה באורדרס קסטומר ריידי.
מה היה קורה אם לא היינו יוצרים שדה מקשר? בואו נעשה את הבדיקה הזאת, נעשה פה comment ונמשיך להריץ, אני יכול כבר לעצור פה, נשים פה exit script כדי לעשות את הבדיקה, אין לי צורך להמשיך מעבר לזה, גם כדי לחסוך זמן אני יכול לשים את כל האקסטרקט ב-comment אחד ארוך, יש לי להזכירכם, הכל פה בעצם נכתב ל-QVD
ובטרנספורמה אני קורא מה-QVD, אז אני כרגע בשביל הבדיקה מדלג על שלב האקסטרקט, מושך את זה ישירות מה-QVD שנוצר הקצה הקודמת. אז בוא נראה מה קורה כשאני מייצר join אבל שוכח לשים את השדה המקשר ביניהם.
אוקיי, שימו לב מה קרה עכשיו. כמובן, עצרתי את זה בזמן עכשיו, בואו נשים לב כמה רשומות יש לנו בטבלת קסטומר. יש לנו 8099 רשומות, ואם אני אסתכל אני בעצם אראה שאותו קסטומר עדי חוזר לעצמו שוב ושוב ושוב ושוב ושוב והחברות המקורית לא הייתה 8099 שהייתה הרבה פחות.
אז מה בעצם נוצר פה? נוצר מה שנקרא מכפלה קרטזית. מכפלה קרטזית זה אומר שבעצם המנוע פה ייחד בין כל השורות בטבלה א' לכל השורות בטבלה ב'.
במקרה הזה מכיוון שהבאתי מ-orders ל-customers, הוא בעצם חיבר את כל ההזמנות עם כל הלקוחות. הוא לא יתחשב בלקוח, מספר הלקוח הספציפי, כשרק את ההזמנה שלו, הוא חיבר את כל ההזמנות עם כל הלקוחות וכמובן זה מה שנקרא מכפלה קרטזית וכמובן זה יוצר הרבה הרבה מאוד שורות.
אז עשיתי את זה כדי להדגים לכם מה קורה כשבעצם שוכחים לשים את השדה המקשר. אז בואו נחזיר אותו. עכשיו טבלת קאסטומרס בעצם כוללת את המספר המקורי של השירות 91. זה היה המספר.
ובואו נוריד את ה-exit script כדי להריץ מלא ונחזור למצב הראשוני. אגב אפשר לחבר לא רק על בסיס שדה אחד ג'וין גם יותר שניים שלושה ויותר במידת הצורך. אם אני חוזר רגע לירדי שלי פה בעצם סליחה לא לפה כמו שאמרנו שבעצם חיברנו לפי Customer ID. אבל יכול להיות מצב שאני רוצה לחבר לפי שני שדות, בואו נניח שהסנאריו הוא שאני רוצה לתת לנהל טבלה של הנחות ללקוח,
אוקיי? אבל ההנחה היא משתנה לפי שנה, זאת אומרת לקוח, לכל לקוח לכל שנה אני מנהל אחוז הנחה מסוים. אם אני מסתכל פה על טבלת orders היא כוללת גם את Customer ID וגם את ה-Order Ear.
נניח שאני רוצה ליצור טבלה, ניצור טבלה אינליין, טבלה ידנית שמנהלת כמו שאמרתי לכל לקוח לכל שנה את ההזמנה שלו, בואו נגיד ניקח שני לקוחות לדוגמה, 85 ו-79, ובואו נוודא שיש להם, נראה שיש להם שנים מקבילות, כדי שלא סתם נייצר נתונים.
אני אלך לרצוגה רגע. איפה ה-Customer ID שלנו? אין לנו, אז בואו נוסיף Customer ID. אפילו גם נביא אותו למעלה, שיהיה לנו נוח לעבוד איתו. אז בואו נראה אם 85, ואיזה שנים יש לו, 2012 ו-13, זה בסדר. בואו נראה את 79.
כמו יש לו ל-2012 ו-2013 וגם ל-2014, זה בסדר. אז בואו נעשה לכל אחד מהם ל-2012 ו-2013 אחוז הנחה.
אז אני אלך ל-Transform נניח, נניח שנשים את זה פה, אני ארד למטה. אגב, לפעמים יוצרים בין מקטעים, יוצרים מין שורת הערה כזאת שבו התיכון, לא משנה, אני בדרך כלל שם את זה בין כל שני מקטעים עיקריים, כמו שאתם רואים פה, אבל זה באמת עניין של נוחות.
ואני אצור עכשיו טבלה חדשה שנקרא לה Discounts. ונעשה לואוד כוכבית אינליין ככה אנחנו כותבים בגוף הטקסט אותה סוגריים מרובעים שדה אחד של יהיה customer ID כמובן חייב לדייק לכתוב את זה בדיוק באותו אופן אז בוא נראה