
הטקסט המלא של הדקות הראשונות בהרצאה «Qlik Aggregation Functions - Group By - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז למדנו כבר די הרבה פונקציות. אם נחזור רגע לסקריפט הזה, יש לנו את כל הפונקציות סטרינג שלמדנו, אפר ורייט וטקסט ביטווין.
למדנו פונקציות מסוג תאריך שחילצנו שנה, חודש, רבעון. עכשיו אני רוצה לדבר על הפונקציות אולי הכי חשובות בכל מערכת ביי, שזה פונקציות אגרגטיביות או אגרגייט פונקצ'נס.
פונקציות אגרגטיביות הן בעצם פונקציות מיוחדות, קבוצה מיוחדת של פונקציות שהאיכות שלהן זה שהן רצות על הרבה רשומות או הרבה ערכים ומחלצות מתוכם מספר אחד בודד.
עוד פעם אני אגיד, לוקחות הרבה ערכים ומחלצות או הופכות את זה למספר אחד בודד. למשל, פונקציית count שלמדנו. למה זה פונקציה אגרגטיבית? כי פונקציית count בעצם עוברת על הרבה מאוד, נניח customers, לקוחות וסופרת אותם בסוף מחזירה כמה יש לי סך הכל לקוחות.
גם פונקציית sum שלמדנו בעצם עושה לי טוטאל, היא עוברת על כל המגיד כמות שיש בהזמנה או הסכום שיש בהזמנה ומסכמת, זאת אומרת סך הכל יצא כל הסכום 500 אלף נניח, אז אלו פונקציות דוגמאות לפונקציות אגרגטיביות שיש עוד כמה סוגים מרכזיים, תכף נעבור עליהם.
אז אמרנו שאם אני בא לאיזשהו מקום שיש בו את הסימן של הפונקציה, נניח סתם, רק בשביל ההדגמה, נניח לכותרות, אוקיי, טייטל, עפצתי על הכפתור של הפונקציה וקיבלתי את המסך הזה שאם שימו לב שיש פה ארבע חלקים אני יכול להקטין ולפתוח ולסגור מה שאני רוצה או לא רוצה אז החלק השני זה פונקשן אז בעצם
פעם שעברה עברנו על הקבוצה סטרינג פונקשן לקראת הסוף ובעצם אנחנו נדבר היום על אגרגייט פונקשן או אגרגיישן פונקשן הפונקציות האגרגטיביות שדיברנו עליהן אז אם אני בוחר פה בעצם אני מקבל תחתיו את כל הפונקציות האגרגטיביות יש המון פונקציות בכל
קבוצה לא כולן שימושיות באותה מידה אנחנו נעבור על העיקריות אז פה אני יכול למצוא באמת את אקאונט אוקיי ואני יכול למצוא את סאם גם אני יכול לחפש ולראות את זה סאם עוד פונקציה שימשית מאוד זה אברנג' או avg שמחלצת לי ממוצע זאת אומרת היא לוקחת הרבה ערכים ופשוט עושה ממוצע יש לי את מין שזה המינימלי ויש לי את מקס שזה המקסימלי בוא נשחק
עם זה קצת לפני כן אני רוצה לחדד נקודה שהזכרתי בעבר של האם לעשות פונקציה להפעיל אותה בסקריפט או בתצוגה. אז בשיעורים שעברו עשינו את כל הפונקציות בסקריפט והיום לעבוד עם פונקציות אגרגטיביות דווקא בתצוגה ולא בסקריפט ולמה.
אז פונקציות הקו המנחה צריך להיות פונקציות שמייצרות לי תוצאה שהיא קבועה היא תמיד תהיה קבועה לא משנה מה המשתמש סינן עדיף לעשות אותה בסקריפט.
למשל כשרצינו לחלץ מתוך התאריך שנה אוקיי בוא נחזור לזה רגע העלית order date ועשיתי עליו year של order date as order year לא משנה מה המשתמש לחץ לא משנה מה הוא בחר בתצוגה תמיד נגיד השנה של הראשון לשלישי 2019 השנה תהיה תמיד 2019 זה לא משנה על מה הוא ילחץ הסינון של המשתמש לא משפיע על החישוב של הפונקציה ולכן תמיד עדיף לעשות את זה לפני כן
זאת אומרת לפני התצוגה בשכבת הסקריפ למה כי אז אני מייצר לי מראש שדה מובנה ואז בזמן שימוש כשהמשתמש שמפעיל את התוכנה, עושה כל מיני סילונים.
בעצם המערכת לא צריכה לחשב מחדש את השנה או את כל פונקציה אחרת שנעשה. אז מבחינת ביצועים זה הרבה יותר טוב. סיבה נוספת, אנחנו יכולים לעשות שימוש חוזר באותו שדה בכמה מקומות, כמו שראינו, נניח, עשיתי שדה עיר, ואז אני יכול לשים אותו גם למעלה, ואני יכול גם לקחת את העיר ולהשתמש בו פה,
או את השנה וחודש כמו שעשינו פה. אני יכול בעצם לעשות שימוש חוזר, כי בעצם השדה הזה הפך להיות חלק מהדאטה סט שלי. ואני יכול להשתמש בו שוב ושוב. אז אני אומר שוב, כל נוסחה, כל פונקציה שהיא תהיה תמיד קבועה, התוצאה שלה תמיד תהיה קבועה, אני אכין אותה בסקריפט והיא תבוא לי כשדה מוכן.
אבל פונקציות אגרגטיביות, אם נחשוב על זה רגע, הן לא פונקציות כאלה. למה? כי למשל קאונט, בסדר? אם אני רוצה לספור את הלקוחות, אז זה כן משתנה לפי מה שהמשתמש לוחץ, כי אם המשתמש נגיד בחר 2019 בשנה ואז הוא עושה קאונט על הלקוחות אז הוא יקבל את סך הכל או את מספר הלקוחות שקנו ב-2019 ואם הוא לוחץ על 2018 אז הקאונט יכיל את מספר הלקוחות שקנו
ב-2018, זאת אומרת זה צריכה להיות פונקציה דינמית, פונקציה שמשתנה עם הסינון של המשתמש ולכן אי אפשר לעשות אותה בסקריפט. נלמד מקרים מקריבות באופן שכן הפועל פונקציות אגרגטיביות גם בסקריפט בגדול אני אגיד שזה במקרים שכן רוצים לקבע את הסך הכל או את האקאונט אבל בדרך כלל אנחנו נשאיר את זה לשכבת התצוגה בואו נעשה קצת משחקים עם פונקציות
אגרגטיביות נשכפל רגע את המסך האחרון time dimension duplicate בוא נכתוב פה אגרגיישן ונתחיל לשחק אז אני אמחק את כל האובייקטים של האמצע ואני רוצה להביא טבלה נניח שנביא מטבלת קסטומר קסטומר איידי אני לא זוכר איך קוראים לנם של הקסטומר אז אני אלך לדאטה מודל viewer קסטומר אוקיי לא קראתי לזה קסטומר נם פשוט פירס נם ולס נם
אגב כדאי בהזדמנות כן לשנות את זה אתם רואים שבאמת התבלבלתי בינתיים אני אביא את פירס נם ולס נם ונגיד שזה מספיק לכרגע אוקיי אז אני בעצם קיבלתי פה רשימה גולמית של כל הלקוחות