בשפת 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.
תרגול שפת SQL
באתר strata scratch תמצאו תרגילים רבים עם שאלות עסקיות מורכבות, וממשק המאפשר כתיבה והרצה של שאילתות כך שתוכלו לבדוק האם הפתרון שלכם נכון. באתר יש גם אפשרות לתרגל תרגילים ב- Python.
התרגול באתר הוא ללא עלות, אך אפשר להירשם כדי לקבל גישה לתרגילים חדשים ופתרונות לכל התרגילים (גילוי נאות – רישום לאתר דרך הקישור מתגמל אותי בעמלה קטנה, וגולשים המגיעים דרך הקישור יכולים להשתמש בקוד קופון yuval20 על מנת לקבל 20% הנחה).
נכתב על ידי יובל מרנין,
לשרותי ניתוח נתונים ויצירת דוחות BI ניתן לפנות אליי ב- לינקדאין, פייסבוק או במייל: [email protected]
*** לפודקאסט של הבלוג לחצו כאן ***