GROUP BY

GROUP BY

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

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

שימו לב: חובה להצהיר את המשתנה שמופיע בהוראה GROUP BY בפסוקית ה-SELECT.

ייתכן ששמתם לב לכך שהסכום של כל הפריטים בכל המגדרים נמוך מהתוצאה של השאילתה המקורית (ללא ההפרדה למגדר). הסיבה לכך היא שיש מספר (מועט) של פריטים שאין עבורם מידע על מגדר. (להסבר, ראו את הפרק OPTIONAL).

תרגיל: GROUP BY

| תרגיל: כתבו שאילתה שמציגה סרטים שהיו מועמדים לפרס, ואת מספר המועמדויות עבור כל סרט.

רמז: חפשו סרטים שיש להם מאפיין P1411 (מועמדות לפרס)

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

פתרון

שימו לב שההוראה DISTINCT מתייחסת במקרה זה למשתנה של הפרס ולא לפריט. אם לפריט יש יותר מהצהרה אחת עם המאפיין P31 (מופע של) ויש לו יותר מנתיב אחד למחלקה סרט קולנוע (למשל, הפריט מוגדר גם כמופע של סרט קולנוע וגם כמופע של סרט תלת-ממד – שהוא תת-קבוצה של סרט קולנוע), DISTINCT יוודא שהמועמדויות לפרס ייספרו רק פעם אחת.

כדי לראות לאיזה סרט היו הכי הרבה מועמדויות, אפשר לגלול לתוצאות לאחר הרצת השאילתה, וללחוץ על העמודה "count" בראש הטבלה. פעולה זו תדרג את התוצאות לפי עמודה זו. בפרק הבא תלמדו איך להורות לדרג את התוצאות בגוף השאילתה.

דילוג לתוכן