שאלות בראיון SQL לאנשי מקצוע מנוסים

צומת המקור: 1586233

שאלות בראיון SQL לאנשי מקצוע מנוסים
 

מבוא

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

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

SQL היא השפה העיקרית לניהול מסדי נתונים, ולכן ביצוע פעולות SQL הוא בלב העבודות של מדעני נתונים. רוב הראיונות של מדעני נתונים מסודרים כדי לקבוע את הידע של המועמד ב-SQL. 

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

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

רעיונות מינימליים לאנשי מקצוע מנוסים

מקרה / מתי

 
הבנה יסודית של המושג CASE (והצהרת When הנלווית לו) חיונית להשגת שליטה מלאה ב-SQL. הצהרת מקרה מאפשרת לנו לבדוק תנאים מסוימים ולהחזיר ערך בהתבסס על ההערכה של התנאים האלה כאמיתיים או לא. בשילוב עם סעיפים, כמו WHERE ו-ORDER BY, CASE מאפשר לנו להכניס היגיון, תנאים וסדר לשאילתות ה-SQL שלנו.

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

מועמדים מנוסים צריכים להיות מוכנים לענות על שאלות תיאורטיות, כגון להסביר את ההבדלים בין הצהרות CASE מוערך וחיפוש, כיצד הם פועלים וכיצד לכתוב אותם. זה מצריך הבנה חזקה של התחביר והפרקטיקות הנפוצות שלהם. מיותר לציין שזה כולל גם שימוש נכון בסעיף ELSE.

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

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

הנה דוגמה לשאלה שניתן לפתור באמצעות הצהרות CASE / WHEN: https://platform.stratascratch.com/coding/9634-host-response-rates-with-cleaning-fees?python= 

זו שאלה קשה שנשאלת בראיונות ב-Airbnb, שבהם המועמדים צריכים למצוא את שיעור התגובה הממוצע של המארח, את המיקוד ואת דמי הניקיון המתאימים לו.

במקרה זה, ההצהרה CASE/WHEN משמשת לעיצוב התוצאה כמספר והצגתה כערך אחוז, בנוסף למיקוד.

SQL מצטרפים

 
קל להרגיש בטוח בידע שלך ב-SQL Joins, אבל ככל שתחקור יותר את הנושא הזה, כך תגלה שאתה לא יודע. מראיינים שואלים לעתים קרובות שאלות ראיון על היבטים מתקדמים של SQL Joins שלעתים קרובות מתעלמים מהם. אז חשוב להתעמק במושג הזה ולשלוט בו ביסודיות.
 
מלבד המושגים הבסיסיים, מראיינים עשויים לברר מהן הצטרפות עצמיות, ולגלות את עומק הידע שלך על ידי בקשה לפתור שאלות מעשיות. כדאי להכיר את כל סוגי החיבורים השונים, כולל הסוגים המורכבים יותר, כגון חיבורי hash או חיבורים מורכבים. אפשר גם לבקש ממך להסביר מהן חיבורים טבעיים ומתי הם השימושיים ביותר. לפעמים תצטרך להסביר את ההבדלים בין חיבורים טבעיים ופנימיים.
 
אתה צריך, באופן כללי, להיות בעל ניסיון יסודי ושליטה בשימוש בחיבורים בשילוב עם הצהרות אחרות כדי להשיג את התוצאות הרצויות. לדוגמה, אתה צריך לדעת איך להשתמש בסעיף WHERE כדי להשתמש ב-Cross Join כאילו זה היה Inner Join. כמו כן, מצפים ממך לדעת כיצד להשתמש ב-joins כדי לייצר טבלאות חדשות מבלי להפעיל לחץ רב מדי על השרת. או כיצד להשתמש בחיבורים חיצוניים כדי לזהות ולהשלים את הערכים החסרים בעת ביצוע שאילתות למסד הנתונים. או הפעולות הפנימיות של חיבורים חיצוניים, כמו העובדה שארגון מחדש של הסדר שלהם יכול לשנות את הפלט. 

הנה דוגמה לשאלה הכרוכה בכתיבת הצהרה משותפת פנימית

זו שאלה קשה למדי, שבה המועמדים מתבקשים להציג את גודל ההזמנה כאחוז מסך ההוצאות.
 
 

קונספט מתקדם N1: מניפולציה של תאריך-זמן

 
שאלות בראיון SQL לאנשי מקצוע מנוסים
 

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

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

חשוב גם לשקול את ההקשר של העבודה שאליה אתה מגיש מועמדות. חברת AI או IoT תהיה מודאגת יותר במעקב אחר נתונים שנאספו מהחיישנים, בעוד שאפליקציית מסחר במניות עשויה לדרוש ממך לעקוב אחר תנודות המחירים במהלך היום, השבוע או החודש.

במקרים מסוימים, מעסיקים עשויים לשאול לגבי פונקציות תאריך/שעה מתקדמות יותר ב-SQL, כגון CAST(), EXTRACT() או DATE_TRUNC(). פונקציות אלה עשויות להיות חשובות כאשר אתה עובד עם נפח גדול של נתונים המכילים תאריכים. מדען נתונים מנוסה צריך לדעת את המטרה של כל פונקציה והיישומים שלה. בתרחיש אידיאלי, הוא או היא צריכים להיות בעלי ניסיון בשימוש בהם בעבר.

המניפולציה המורכבת ביותר של תאריך-זמן ב-SQL הולכת לכלול שילוב של פונקציות בסיסיות ומתקדמות. אז יש צורך להכיר את כולם, החל מה-FORMAT(), NOW(),CURRENT_DATE ו-CURRENT_TIME הבסיסיים יותר, וכולל פונקציות מתקדמות יותר שהוזכרו לעיל. בתור מדען נתונים מנוסה, אתה צריך גם לדעת מה INTERVAL עושה ומתי להשתמש בו.

הנה דוגמה לשאלה שנשאלה בראיונות של Airbnb, שבו על המועמדים להשתמש בנתונים הזמינים כדי לעקוב אחר הצמיחה של Airbnb.
 
 

הנחת היסוד:

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

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

פתרון:

 
כדי לענות על שאלה זו, על המועמד לעבוד עם הטבלה שנקראת 'airbnb_search_details', הכוללת עמודות רבות. העמודה שאנו צריכים מסומנת בשם 'host_since', שמציינת את השנה, החודש והיום שבו המארח נרשם לראשונה לאתר. לתרגיל זה, החודש והיום אינם רלוונטיים, ולכן הדבר הראשון שנצטרך לעשות הוא לחלץ את השנה מהערך. לאחר מכן נצטרך ליצור תצוגה שכוללת עמודות נפרדות עבור השנה הנוכחית, השנה הקודמת, ואת המספר הכולל של המארחים באותה שנה. 

בחר      extract(שנה FROM host_since::DATE) FROM airbnb_search_details WHERE host_since IS NOT NULL

עד כה עשינו שני דברים:

  1. הקפדנו לכלול רק את השורות שבהן העמודה host_since אינה ריקה.
  2. חילצנו את השנה מהנתונים ויצרנו אותה כערך DATE.
בחר      extract(year FROM host_since::DATE)       count(id) as current_year_host FROM airbnb_search_details WHERE host_since IS NOT NULL GROUP BY extract(year FROM host_since::DATE) ORDER BY year asc

לאחר מכן אנו ממשיכים לספור את המזהים ולהגדיר את הסעיף GROUP BY לכל שנה. ותגרום לזה להופיע בסדר עולה. 

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

SELECT       Year,       current_year_host,       LAG(current_year_host, 1) OVER (ORDER BY year) as prev_year_host בחר      extract(year FROM host_since::DATE)       count(id) as F Current_year_host, XNUMX) OVER (ORDER BY year) as prev_year_host. ROM host_since: :תאריך) סדר לפי שנה עלייה

כאן, הוספנו את העמודה השלישית, שתתווית 'קודם_שנה_מארח' והערכים שלה הולכים לבוא מ'מארח_נוכחי', למעט ההשהיה של שורה אחת. כך זה עשוי להיראות:

שאלות בראיון SQL לאנשי מקצוע מנוסים
 

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

SELECT year,       current_year_host,       prev_year_host,       round(((((((Current_year_host - prev_year_host)/(cast(prev_year_host AS numeric)))*100) estimated_growth FROM   (SELECT year,      ‏ _host, 1) OVER (ORDER BY year) AS prev_year_host FROM     (SELECT extract(year                     FROM host_since::date) AS year,             count(id) current_year_host       FROM airbnb_search_details       WHERE ‎            FROM host_since::date)       סדר לפי שנה) t1) t2

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

זה הפתרון למשימה הזו. ברור שפונקציות מניפולציה של תאריך-שעה היו חיוניות להשלמת המשימה. 
 
 

קונספט מתקדם N2: פונקציות חלון ומחיצות

 
שאלות בראיון SQL לאנשי מקצוע מנוסים
 

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

כדי לעשות את השימוש הטוב ביותר בפונקציות החלון, יש לדעת גם מהו פסקת PARTITION BY וכיצד להשתמש בו. ייתכן שתתבקשו להסביר זאת ולספק דוגמאות למספר מקרי שימוש. לפעמים תצטרך לארגן שורות בתוך מחיצות באמצעות סעיף ORDER_BY.

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

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

ב-SQL, יש בדרך כלל דרכים רבות לגשת למשימה. ובכל זאת, פונקציות החלונות מספקות את הדרך הקלה ביותר לבצע פעולות נפוצות אך מורכבות. דוגמה טובה לפונקציית חלון כזו היא LAG() או LEAD(), אז כדאי להכיר אותם גם כן. לדוגמה, בואו נסתכל על דוגמה מהפתרון הקודם לשאלת ראיון קשה של Airbnb:

כדי להציג את מספר המארחים בשנה הקודמת, השתמשנו בפונקציה LAG() עם המשפט OVER. אפשר היה לעשות זאת בדרכים רבות אחרות, אבל פונקציות החלון אפשרו לנו להשיג את התוצאה הרצויה רק ​​בשורה אחת של קוד SQL:

LAG(current_year_host, 1) OVER (ORDER BY year) as prev_year_host

הרבה חברות צריכות לחשב צמיחה על פני תקופה מסוימת של זמן. הפונקציה LAG() יכולה להיות בעלת ערך רב להשלמת מטלות כאלה.
 
 

קונספט מתקדם N3: חודש על פני חודש צמיחה

 
שאלות בראיון SQL לאנשי מקצוע מנוסים
 

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

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

בואו נסתכל על שאלה אחת לדוגמה שנשאלה על ידי מראיינים באמזון.

הנחת היסוד:

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

פתרון:

 
כאשר עובדים על משימה כזו, הדבר הראשון שעליך לעשות הוא להבין את הטבלה. כמו כן, עליך לזהות את העמודות שאתה צריך לעבוד איתן כדי לענות על השאלה. ואיך הפלט שלך הולך להיראות.

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

בחר   to_char(cast(created_at as date), 'YYYY-MM') FROM sf_transactions

השאלה גם מציינת פורמט לתאריכים, כך שנוכל להשתמש בפונקציה TO_CHAR() ב-SQL כדי להוציא את התאריך בפורמט זה.

כדי לחשב את הצמיחה, עלינו לבחור גם את פונקציית הצבירה create_at ו-SUM() כדי לקבל את נפח המכירות הכולל לאותו תאריך. 

SELECT   to_char(cast(created_at as date), 'YYYY-MM'),   created_at,   sum(value) FROM sf_transactions

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

SELECT   to_char(cast(created_at as date), 'YYYY-MM') AS year_month,   created_at,   sum(value)   lag(sum(value), 1) OVER (ORDER BY created_at::date) FROM sf_transactions GROUP BY created_at

בהתבסס על הקוד שכתבנו עד כה, הטבלה שלנו תיראה בערך כך:

שאלות בראיון SQL לאנשי מקצוע מנוסים
 

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

עלינו גם להסיר את העמודה המיותרת create_at, ולשנות את הסעיפים GROUP BY ו-ORDER BY ל-year_month.

SELECT   to_char(cast(created_at as date), 'YYYY-MM') AS year_month,   sum(value),   lag(sum(value), 1) OVER (ORDER BY to_char(cast(created_at as date)) FROM sf_transactions GROUP BY שנה_חודש

לאחר שנפעיל את הקוד, הטבלה שלנו צריכה לכלול רק את העמודות החיוניות לחישוב שלנו.

שאלות בראיון SQL לאנשי מקצוע מנוסים
 

כעת נוכל סוף סוף להגיע לפתרון. כך ייראה הקוד הסופי:

SELECT to_char(created_at::date, 'YYYY-MM') AS year_month,       round(((sum(value) - lag(sum(value), 1) OVER w) / (lag(sum(value), 1) OVER w)) * 100, 2) AS revenue_diff_pct FROM sf_transactions GROUP BY year_month WINDOW w AS (         ORDER BY to_char(created_at::date, 'YYYY-MM')) סדר לפי year_month ASC


 

בקוד זה, אנו לוקחים שני ערכי עמודות מהדוגמה הקודמת ומחשבים את ההפרש ביניהם. שימו לב שאנו משתמשים גם בכינויי חלונות כדי להפחית את החזרתיות של הקוד שלנו.

לאחר מכן, בהתאם לאלגוריתם, אנו מחלקים אותו בהכנסות של החודש הנוכחי ומכפילים אותו ב-100 כדי לקבל את הערך באחוזים. לבסוף, נעגל את ערך האחוז לשני נקודות עשרוניות. אנו מגיעים לתשובה שעונה על כל דרישות המשימה. 

קונספט מתקדם N4: שיעורי נטישה

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

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

הנה דוגמה למשימה קשה. מועמדים המתראיינים ב- Lyft מקבלים את המשימה הזו לחישוב שיעור הנטישה של נהגים בחברה.

כדי לפתור בעיה זו, מדעני נתונים חייבים להשתמש בהצהרות מקרה/מתי, פונקציות חלון כגון LAG(), כמו גם FROM / WHERE וסעיפים בסיסיים אחרים. 

סיכום

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

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

מקור: https://www.kdnuggets.com/2022/01/sql-interview-questions-experienced-professionals.html

בול זמן:

עוד מ KDnuggets