בשפת SQL הדרכים הנפוצות לסינון שורות הם באמצעות הוראות Where או Having.
אבל ישנה עוד הוראה מיוחדת בשם Qualify שגם באמצעותה ניתן לסנן שורות.
היתרון המיוחד של הוראת Qualify על פני האחרות, היא היכולת שלה לסנן שורות בטבלה בעזרת פונקציות חלון. סינון כזה יכול לפתוח עולם שלם של יכולות אנליטיות חדשות.
מתי כדאי להשתמש בהוראת Qualify?
בכל פעם שנרצה לבצע סינון מתוחכם על הטבלה שאינו מבוסס רק על סינון לפי הערכים בשורה.
דוגמה:
נניח ויש לנו טבלה בשם pages ובה העמודים שצפו כל המשתמשים באתר, ואנחנו מעוניינים לשלוף רק את העמוד האחרון שבו ביקר כל משתמש.
הוראת Qualify מאפשרת לנו לבצע סינון כזה בקלות:
select
user_id,
time_stamp,
page_name
from
pages
qualify
row_number() over (partition by user_id order by time_stamp desc)=1
הערה חשובה
לא בכל הדאטה-בייסים מופיעה הוראת Qualify.
במקרה בו נרצה לסנן תוצאות של פונקציות חלון ללא Qualify נאלץ לעטוף את השאילתה עם פונקציית החלון בשאילתה אחרת (כלומר ניצור תת שאילתה) ורק אז נוכל לסנן את תוצאות פונקציית החלון באמצעות הוראת where.
נכתב ע"י יובל מרנין.
לחברות המעוניינות בשירותי פרילנס או סדנאות של אנליסט, ניתן לפנות אליי [email protected]
*** לפודקאסט של הבלוג לחצו כאן ****
לחצו על הקישור בשביל המדריך המלא לשפת SQL.