המדריך נכתב על ידי יובל מרנין.
למידע על שרותי מנטורינג של דאטה אנליסט לחצו כאן.
**** לפודקאסט של הבלוג לחצו כאן ****
בפרק זה נלמד על פונקציות אגרגטיביות בשפת 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]
*** לפודקאסט של הבלוג לחצו כאן ***
פרק קודם – פרק 7: צרופי טבלאות Union ו Union All
פרק הבא – פרק 9: קיבוץ נתונים – Group By