פרק 8: פונקציות אגרגטיביות בשפת SQL – Aggregative Functions

 

המדריך נכתב על ידי יובל מרנין.
למידע על שרותי מנטורינג של דאטה אנליסט לחצו כאן.

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


בפרק זה נלמד על פונקציות אגרגטיביות בשפת SQL.

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

 

דוגמה על טבלת פרטי הזמנות:

select

       count(order_id) as orders

from

       orders

          

טבלת פרטי ההזמנות מכילה את ה הפרטים שנמכרו בהזמנות, ולכן בדוגמה הנ"ל ספרנו את כמות הפרטים שנמכרו בכל ההזמנות

 

ניתן להשתמש במספר פונקציות אגרגטיביות כמו למשל בדוגמה הבאה:

 

 

select

       count(order_id)  as order_items, —  count of ordered items

       count(distinct order_id)  as orders, —  count of orders

       count(order_id)::float / count(distinct order_id)::float  as avg_items_for_orders, average number of orders

       count(distinct seller_id ) as selers, — number of unique orders

       sum(price) as sum_of_orders, —  sum of orders

       avg(price) as avg_item_price, average item price

       sum(case when shipping_limit_date::date='2017-09-19' then 1  else 0 end ) as sum_of_orders_09_19,  number of items ordered in 19 sep 2019

       max(price) as max_amt –- maximum price item price

from

       order_items

 

 

הערות:

  • בשורה 3 ושורה 7 יש שימוש באופרטור :: כדי לבצע שינוי לסוג המשתנה (type casting).
  • ניתן לעשות חישובים על פונקציות אגרגטיביות כדוגמת החישוב בשורה השלישית של ה- Select.
  • יש פונקציות אגרגטיביות נוספות וכל דטה-בייס יכול להוסיף פונקציות משלו. בדוגמה הנ"ל השתמשתי בפונקציות הפופולריות.   

תרגול שפת SQL

באתר strata scratch תמצאו תרגילים רבים עם שאלות עסקיות מורכבות, וממשק המאפשר כתיבה והרצה של שאילתות כך שתוכלו לבדוק האם הפתרון שלכם נכון. באתר יש גם אפשרות לתרגל תרגילים ב- Python.

התרגול באתר הוא ללא עלות, אך אפשר להירשם כדי לקבל גישה לתרגילים חדשים ופתרונות לכל התרגילים (גילוי נאות – רישום לאתר דרך הקישור מתגמל אותי בעמלה קטנה, וגולשים המגיעים דרך הקישור יכולים להשתמש בקוד קופון yuval20 על מנת לקבל 20% הנחה).

 

נכתב על ידי יובל מרנין,
לשרותי ניתוח נתונים ויצירת דוחות BI ניתן לפנות אליי ב- לינקדאיןפייסבוק או במייל: [email protected]

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

Yuval Marnin

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