PracticU

Qlik Join - חלק 4

בלי כתוביותעם כתוביות
PracticU › קורס BI - ניתוח מסדי נתונים - Qlik Sense › Qlik Join - חלק 4
מילון מושגים:
Qlik - פלטפורמה לניתוח נתונים ולהצגתם בלוחות מחוונים אינטראקטיביים (Business Intelligence).
Join - פעולת SQL שמשלבת שורות משתי טבלאות או יותר על בסיס קשר ביניהן.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.

Qlik Join - חלק 4
בשיעור הזה בודקים את התוצאה של החיבור לפי שני שדות, ואיך ממפים הנחה להזמנה ולסכום שלה.
בדיקת ההנחות
1. לקוח 85: קיבל 10% ב-2012 ו-15% ב-2013, כפי שהוגדר.
2. לקוח 79: קיבל 5% ב-2012 ו-8% ב-2013, ולא קיבל אחוז ב-2014 כי לא הוגדר לו.
מהנחה לסכום
1. הבעיה: ההנחה נמצאת בטבלת orders, והסכום נמצא בטבלת order items. לכן אי אפשר לחשב את שניהם באותה טבלה.
2. מיפוי: יוצרים טבלת מיפוי ממספר הזמנה לאחוז ההנחה, ומשתמשים בה ב-ApplyMap על טבלת order items.
3. Qualify: הפקודה Qualify * מוסיפה לכל שדה את שם הטבלה, וכך Qlik לא מחבר אותם אוטומטית. בסוף מבטלים עם Unqualify.
4. סכום אחרי הנחה: הנוסחה היא הסכום פחות הסכום כפול ההנחה. כשאין הנחה, ערך ברירת המחדל הוא 0 והסכום נשאר כמות שהיה.
בדיקה
בהזמנה אחת סכום של 168 ירד ל-151.2 עם 10% הנחה, ובהזמנה אחרת סכום של 109.5 ירד ל-100.74 עם 8%. שורות בלי הנחה נשארות זהות. כדאי תמיד לבדוק גם את המקרים שבהם אין נתון, כי מידע חסר יכול לעוות תוצאות.
השיעור הבא בקורס: Qlik Join - חלק 5

פרקי ההרצאה: Qlik Join - חלק 4

  1. 00:00

    בדיקת הנתונים שנוצרו בטבלת ההנחות

  2. 00:58

    אחוזי ההנחה לפי לקוח ושנה

  3. 01:40

    הבעיה: הסכום נמצא ב-Order Items

  4. 02:39

    מיפוי הנחה לכל הזמנה

  5. 03:13

    הוספת ההנחה לטבלת Order Items

  6. 04:11

    סינון הזמנות עם הנחה בלבד

  7. 04:55

    Qualify לשמות שדות

תמלול ההרצאה: Qlik Join - חלק 4

הטקסט המלא של הדקות הראשונות בהרצאה «Qlik Join - חלק 4» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    בשיעור הקודם הראינו איך מחברים, שוצרים ג'וינט לשני שדות, אבל לא ממש הספקנו לראות את הנתונים שנוצרו, אז בואו נתעכב על זה עוד רגע קצת. נלך לתצוגה שלנו, overview, נלך לאיזשהו גיליון בדיקות, ובואו נרוקן את הטבלה הזאת ממה שיש בה, ונוסיף לה ככה, את עמודת customer ID שלנו, את order year.

  2. 00:36

    בואו נביא גם את המספר הזמנה. בעצם אנחנו, סתם בשביל הנוחות כי בעצם אנחנו מתבססים על טבלת הזמנות ואת הדיסקאונט, שימו לב. אנחנו כבר מסוננים על לקוח 85, זה טוב, זה נוח.

  3. 00:58

    אתם רואים שבשמונים, לקוח 85 ב-2012 קיבל 10% הנחה, בואו נראה שזה אכן מה שרשמנו. אתם רואים, ב-2016 הוא אכן קיבל 10% הנחה, ובשנת 2013 הוא קיבל 15% הנחה, בדיוק מה שרשמנו.

  4. 01:15

    ואפשר גם לבדוק כמובן על לקוח דירות שמן הסתם הנתונים תואמים ב-2012 הוא קיבל 5% הנחה ו-2013 הוא קיבל 8% הנחה אתם רואים שב-2014 אין לו אחוז הנחה כי באמת לא הגדרנו לו אחוז כזה ועכשיו כמובן מה שאפשר לעשות וזה שימוש חוזר בדברים שלמדנו זה להכיל את אחוז ההנחה על הסכום אז בוא נראה אם אנחנו חוזרים זה קצת

  5. 01:44

    יותר מאתגר העניין היחיד זה שבעצם הסכום לא נמצא ב-orders הוא נמצא ב-order items אז בוא נחשוב שנייה, נעשה סדר.

  6. 02:02

    עשינו הנחה, אחוז הנחה לכל לקוח לכל שנה, עשינו את זה בטבלת orders. למה? כי הלקוח והשעה נמצאים בטבלת orders. אלא מה? הסכום לא נמצא בטבלת orders, הסכום נמצא בטבלת order items, כי יש לנו סכום בעצם לכל פריט.

  7. 02:20

    אז חושבים שיש לנו פה כמה אפשרויות בעצם איך לפתור את זה. במובן שאנחנו לא יכולים להכפיל בסקריפט את האחוז הנחה שנמצא ב-orders, להכפיל אותו ב-amount שנמצא ב-order items.

  8. 02:32

    אנחנו כבר ראינו את זה שאי אפשר בעצם להכפיל או לעשות איזשהו חישוב שמובסס על השני השדות שנמצאים באותה טבלה. מה שאפשר לעשות זה טריק כזה שבעצם לוקח לכל אורדר, לכל הזמנה, אוקיי?

  9. 02:48

    לוקח בעצם את ההנחה שקיבלה ועושה מזה איזושהי טבלת מיפוי. זאת אומרת, הזמנה מספר, בוא נחזור אפילו לפה, אלא יותר קרוב, הזמנה מספר 2. אחוז ההנחה הוא 0.05 או 5 אחוז.

  10. 03:05

    הנחה, סליחה, הזמנה מספר 191, קיבלה לנו 8%. בעצם זו התוצאה של מה שעשינו. עכשיו, אם המיפוי הזה שממפה לי בין מספר הזמנה לבין ההנחה, אני יכול לגשת לטבלת Order Items, שגם שם יש את ה-Order ID, ולהוסיף שם את האחוז ההנחה, אוקיי?

  11. 03:25

    אז אחרי שהגענו ושמנו את טבלת ה-Order, אז אנחנו מכילים את זה על ה-Order Items, ושם כבר נוכל להכפיל את זה בסכום. טוב, זה שימוש חוזר בכמה אלמנטים שכבר למדנו, בואו נעשה את זה.

  12. 03:41

    קו read ואני יוצר עכשיו ככה load כל מה שאני יוצר עכשיו זה order ID seek discount resident נכון מתוך טבלת orders שם זה נמצא ואני לא מתכוון להביא את הכל כי לא לכל יש לי הנחה נגיד שנתתי הנחות רק לשני הלקוחות האלו לשתי השנים האלו אז אני אומר where דיסקאונט איז נאט נאן, יותר נכון נאט איז נעל

  13. 04:26

    דיסקאונט. עכשיו אני אומר לכם עוד איזשהו טריק, מה שקורה אני רוצה להריץ את זה כדי לבדוק לפני שאני אמשיך הלאה, ואתם כבר יודעים שמה שיקרה אחרי שאני אערוץ זה שתיווצר לי עוד איזושהי טבלה סינתדית מעצבנת, כי בין הטבלה הזאת החדשה לבין טבלת אורדר זה יהיה שתי מפתחות משותפים,

  14. 04:52

    אורדר איידי ודיסקאונט, זה משבש את התצוגה זה לא נוח, מה שאפשר לעשות, אפשר להשתמש בפונקציה שבדרך כלל משתמשים בה באופן זמני, Qualify, Qualify כוכבית. אני בעצם אומר, מעתה והלאה, תוסיף לכל שדה בטבלאות הבאות, תוסיף את השם של הטבלה כחלק משם השדה.

  15. 05:13

    למה זה טוב? כי עכשיו הוא לא יחבר לי את זה, אני עושה את זה רק בשביל הבדיקה, רוצה לראות שהנתונים שלי בסדר, אחרי זה אני אמשיך. אני עושה Qualify כוכבית, ובדרך כלל אחרי זה שמים Un-Qualify, כדי שזה יפסיק. במקרה הזה אין לי פה עוד קוד אחרי, אבל הרבה פעמים יש עוד קוד, לכן זה טוב מיד כשגומרים לעשות Unqualified.

  16. 05:30

    בואו נריץ. ונוצרה לי טבלה, נתן לנו איזשהו שם זמני. אתם רואים שהוא לא חיבר אותה, כי הוא הוסיף בתוך שם השדה, הוא הוסיף גם את שם הטבלה. זה מצוין, אני יכול להסתכל, ואכן לראות שהוא נתן לי את ה-Order ID ואת

לקורס המלא: קורס BI אונליין עם Qlik Sense

ההרצאה הקודמת: Qlik Join - חלק 3

ההרצאה הבאה: Qlik Join - חלק 5

הרצאות קשורות מקורסים אחרים

  • פקודת Select עם Join
  • שליפת קטגוריה עם כל המוצרים שלה - MongoDB Join

קורסים נוספים במסלול

  • קורס DBA אפליקטיבי - שפת SQL למתחילים
  • קורס NoSQL - MongoDB
  • קורס SSIS
  • קורס Power BI