פרק 14: הוראת Qualify בשפת SQL

You are currently viewing פרק 14: הוראת Qualify בשפת SQL
Image by Gordon Johnson from Pixabay

בשפת 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]

*** לפודקאסט של הבלוג לחצו כאן *** 

Yuval Marnin

לחברות המעוניינות בשירותי פרילנס או מנטורינג של אנליסט, ניתן לפנות אליי ל[email protected]