**** לפודקאסט של הבלוג לחצו כאן ****
המדריך נכתב על ידי יובל מרנין.
למידע על שרותי מנטורינג של דאטה אנליסט לחצו כאן.
בפרק זה נלמד על תת שאילתה בשפת SQL.
כל פלט של שאילתה היא למעשה טבלה בפני עצמה, וניתן להשתמש בפלט בתוך שאילתה אחרת:
select
*
from
(
select
customer_id,
count(*) as orders
from
orders
group by
customer_id
) as sub_query
left join
customers as c on sub_query.customer_id=c.customer_id
order by
sub_query.orders desc
בשאילתה שלפנינו במקום להשתמש בטבלה מהדטה-בייס בהוראת ה from יצרנו תת שאילתה שמקבצת עבור כל לקוח את כמות ההזמנות שלו ואליה חיברנו את הנתונים של הלקוח.
כדי שנוכל להתייחס לטבלה בהמשך לתת שאילתה יש לתת לה שם עם הוראת as.
מומלץ לבחור שם עם משמעות כיוון ששימוש ששאילתה עם תתי שאילתות הופכת למורכבת יותר ושמות הגיוניים מקלים על מעקב אחר מקור השדות בשליפה.
בתתי שאילתות ניתן להשתמש בהרבה מקומות בתוך השאילתה, אך השימושים העיקריים הם בתוך הוראת from כמו בדוגמה שהוצגה לפני, בהוראת join (חיבור של תת השאילתה לטבלה אחרת) ובהוראת in כמו בדוגמה הבאה:
select
*
from
customers
where
customer_id in
(
select
distinct
customer_id
from
orders
where
order_purchase_timestamp::date='2017-09-19'
)
השאילתה הנ"ל מבקשת מהדטה-בייס את פרטי הלקוחות רק עבור הלקוחות שהזמינו ב 19 בספטמבר 2017.
כאשר משתמשים בתת שאילתה בתוך הוראת in על השאילתה להחזיר רק שדה אחד (במרה שלנו customer_id).
המדריך נכתב על ידי יובל מרנין.
למידע על שרותי מנטורינג של דאטה אנליסט לחצו כאן.
**** לפודקאסט של הבלוג לחצו כאן ****
אם התגלתה טעות אנא צרו קשר במייל:
[email protected]
פרק קודם – פרק 9: קיבוץ נתונים – Group By
פרק הבא – פרק 11: סדר הוראות