شعار زيفيرنت

أسئلة مقابلة SQL للمهنيين ذوي الخبرة

التاريخ:

أسئلة مقابلة SQL للمهنيين ذوي الخبرة


 

المُقدّمة

 
إذا كنت عالم بيانات متمرسًا وتبحث عن وظيفة ، فلا يمكنك اختيار وقت أفضل. اعتبارًا من الآن ، تبحث العديد من المؤسسات الراسخة عن علماء البيانات الذين يعرفون حرفتهم من الداخل والخارج. ومع ذلك ، فإن الطلب المرتفع لا يعني أنه يمكنك ، أو يجب عليك القفز عبر الأطواق والتقدم لشغل مناصب عليا دون مجموعة مهارات معينة. عند تعيين علماء بيانات ذوي خبرة ، تتوقع الشركات منهم العمل على أصعب المهام المطروحة. يجب أن يكون لدى هؤلاء الموظفين فهم جيد حتى لأكثر الميزات غموضًا حتى يتمكنوا من استخدامها عند الضرورة.

لا ينبغي أن يكون مفاجئًا أنه عند إجراء المقابلات للمناصب العليا ، يميل علماء البيانات المتمرسون إلى طرح أسئلة أصعب بكثير. في كثير من الأحيان ، عند العمل في وظيفة واحدة لمدة عامين ، يصبح علماء البيانات ماهرين جدًا في أداء بعض المهام المتكررة. من الضروري للمحترفين أن يدركوا أن SQL لا تتوقف وتنتهي بمعرفتهم الحالية. عندما يتعلق الأمر بمفاهيم SQL المتقدمة ، فقد لا تزال هناك بعض الفجوات في معرفتهم. لذلك لا يضر الحصول على مساعدة لتحقيق النجاح في مقابلة عالم البيانات الخاصة بك. 

SQL هي اللغة الأساسية لإدارة قواعد البيانات ، لذا فإن إجراء عمليات SQL هو في صميم وظائف علماء البيانات. يتم ترتيب معظم المقابلات مع علماء البيانات لتحديد معرفة المرشح بـ SQL. 

قد لا تتضمن الوظيفة اليومية كتابة استفسارات معقدة ، ولكن يجب أن تُظهر أنه إذا كانت هناك حاجة إلى مثل هذه المهارات ، فأنت الشخص القادر على القيام بذلك. لذلك لا ينبغي أن يكون مفاجئًا أن يسأل المحاورون مجموعة متنوعة من أسئلة مقابلة SQL لاختبار طلاقة المرشح في SQL.

في هذه المقالة ، أردنا تلخيص بعض الأسئلة والمفاهيم المعقدة التي طُرحت في المقابلات مع المهنيين ذوي الخبرة. حتى إذا كنت واثقًا من معرفتك بـ SQL ، فلن يضر فحص الكلمات الرئيسية والتأكد من تغطية كل شيء.

الحد الأدنى من المفاهيم للمهنيين ذوي الخبرة

الحالة / متى

 
يعد الفهم الشامل لمفهوم CASE (وبيان متى المصاحب له) ضروريًا لتحقيق إتقان كامل لـ 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 Joins ، ولكن كلما استكشفت هذا الموضوع ، كلما اكتشفت أنك لا تعرف. يسأل المحاورون في كثير من الأحيان أسئلة المقابلة حول الجوانب المتقدمة لـ SQL Joins التي غالبًا ما يتم تجاهلها. لذلك من المهم الخوض في هذا المفهوم وإتقانه تمامًا.
 
إلى جانب المفاهيم الأساسية ، قد يستفسر القائمون على المقابلات عن ماهية الصلات الذاتية ، ويكتشفوا عمق معرفتك من خلال طرح أسئلة عملية. يجب أن تعرف جميع أنواع الصلات المختلفة ، بما في ذلك الأنواع الأكثر تعقيدًا ، مثل صلات التجزئة أو الصلات المركبة. قد يُطلب منك أيضًا شرح ماهية الصلات الطبيعية ومتى تكون أكثر فائدة. سيتعين عليك أحيانًا شرح الاختلافات بين الصلات الطبيعية والداخلية.
 
بشكل عام ، يجب أن تتمتع بخبرة شاملة وإتقان في استخدام الصلات جنبًا إلى جنب مع العبارات الأخرى لتحقيق النتائج المرجوة. على سبيل المثال ، يجب أن تعرف كيفية استخدام جملة WHERE لاستخدام Cross Join كما لو كان Inner Join. يُتوقع منك أيضًا معرفة كيفية استخدام الصلات لإنتاج جداول جديدة دون ممارسة ضغط كبير على الخادم. أو كيفية استخدام الصلات الخارجية لتحديد القيم المفقودة وتعبئتها عند الاستعلام عن قاعدة البيانات. أو الأعمال الداخلية للوصلات الخارجية ، مثل حقيقة أن إعادة ترتيبها يمكن أن يغير الإخراج. 

فيما يلي مثال على السؤال الذي يتضمن كتابة بيان مشترك داخلي

هذا سؤال صعب إلى حد ما ، حيث يُطلب من المرشحين عرض حجم الطلب كنسبة مئوية من إجمالي الإنفاق.
 
 

المفهوم المتقدم 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" ، والذي يشير إلى السنة والشهر واليوم الذي اشترك فيه المضيف لأول مرة في موقع الويب. بالنسبة لهذا التمرين ، الشهر واليوم غير ذي صلة ، لذا فإن أول شيء يتعين علينا القيام به هو استخراج السنة من القيمة. ثم سيتعين علينا إنشاء طريقة عرض تتضمن أعمدة منفصلة للسنة الحالية والسنة السابقة والعدد الإجمالي للمضيفين في ذلك العام. 

حدد استخراج (السنة من host_since :: DATE) من airbnb_search_details WHERE host_since IS NOT NULL

لقد قمنا حتى الآن بأمرين:

  1. لقد تأكدنا من تضمين الصفوف فقط حيث يكون عمود host_since غير فارغ.
  2. لقد استخرجنا السنة من البيانات وصنعناها كقيمة DATE.
حدد استخراج (السنة من host_since :: DATE) العد (المعرف) كـ current_year_host من airbnb_search_details WHERE host_since IS NOT NULL GROUP BY extract (السنة من 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 حدد المستخرج (السنة من host_since :: DATE) العد (المعرف) كـ current_year_host FROM airbnb_search_details حيث أن host_since ليس مضيفًا منذ GROUP BY (GROUP BY) : DATE) ترتيب حسب السنة تصاعدي

هنا ، أضفنا العمود الثالث ، والذي سيكون بعنوان "prev_year_host" وستأتي قيمه من "current_year_host" ، باستثناء التأخير في صف واحد. إليك ما قد يبدو عليه ذلك:

أسئلة مقابلة SQL للمهنيين ذوي الخبرة


 

يجعل ترتيب الجدول بهذه الطريقة من السهل جدًا حساب معدل النمو النهائي. لدينا عمود منفصل لكل قيمة في المعادلة. في النهاية ، يجب أن يبدو الكود الخاص بنا كما يلي:

SELECT year، current_year_host، prev_year_host، round (((current_year_host - prev_year_host) / (cast (prev_year_host AS numeric))) * 100) Estim_growth FROM (SELECT year، current_year_host، LAG (current_year_host، 1) OVER (or current_year_host، 1) OVER من (حدد مقتطف (سنة من host_since :: تاريخ) AS سنة ، عدد (id) current_year_host FROM airbnb_search_details حيث host_since ليس NULL GROUP BY extract (سنة من host_since :: date) ORDER BY year) t2) tXNUMX

هنا ، نضيف استعلامًا آخر وعمودًا آخر حيث نحسب معدل النمو. يجب علينا ضرب النتيجة الأولية في 100 وتقريبها لتلبية متطلبات المهمة. 

هذا هو الحل لهذه المهمة. من الواضح أن وظائف معالجة التاريخ والوقت كانت ضرورية لإكمال المهمة. 
 
 

المفهوم المتقدم N2: وظائف النوافذ والأقسام

 
أسئلة مقابلة SQL للمهنيين ذوي الخبرة


 

وظائف نافذة SQL هي أحد أهم المفاهيم لكتابة استعلامات SQL المعقدة والفعالة. من المتوقع أن يكون لدى المحترفين ذوي الخبرة معرفة عملية ونظرية عميقة بوظائف النافذة. وهذا يشمل معرفة ما هو الشرط over وإتقان استخدامه. قد يسأل الباحثون كيف يمكن لبند 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) كـ prev_year_host

تحتاج الكثير من الشركات إلى حساب النمو خلال فترة زمنية معينة. يمكن أن تكون وظيفة LAG () لا تقدر بثمن لإكمال مثل هذه المهام.
 
 

المفهوم المتقدم N3: النمو شهر بعد شهر

 
أسئلة مقابلة SQL للمهنيين ذوي الخبرة


 

تستخدم العديد من المنظمات تحليل البيانات لقياس أدائها. قد يستلزم ذلك قياس فعالية الحملات التسويقية أو عائد الاستثمار على استثمار معين. يتطلب إجراء مثل هذا التحليل معرفة متعمقة بـ SQL ، مثل التاريخ والوقت ووظائف النافذة.

سيتعين على علماء البيانات أيضًا إثبات مهاراتهم في تنسيق البيانات وعرضها كنسب مئوية أو بأي شكل آخر. بشكل عام ، لحل الأسئلة العملية حيث يتعين عليك حساب النمو على أساس شهري ، يجب عليك استخدام مجموعة من مجموعات المهارات المتعددة. سيتم تطوير بعض المفاهيم المطلوبة (وظائف النافذة ، والتعامل مع التاريخ والوقت) ، بينما سيكون البعض الآخر أساسيًا (وظائف مجمعة وعبارات SQL الشائعة).

لنلقِ نظرة على أحد الأمثلة على سؤال طرحه المحاورون في أمازون.

المبنى:

 
في هذا السؤال ، علينا العمل مع جدول المشتريات وحساب النمو الشهري أو الانخفاض في الإيرادات. يجب تنسيق النتيجة النهائية بطريقة معينة (تنسيق YYYY-MM) ويجب تقريب النسب المئوية إلى ثاني أقرب رقم عشري. 

حل:

 
عند العمل في مهمة مثل هذه ، فإن أول شيء عليك القيام به هو فهم الجدول. يجب عليك أيضًا تحديد الأعمدة التي تحتاج إلى العمل معها للإجابة على السؤال. وكيف سيبدو الناتج الخاص بك.

في مثالنا ، تحتوي قيم البيانات على نوع الكائن ، لذلك سيتعين علينا استخدام وظيفة CAST () لتحويلها إلى أنواع تاريخ.

حدد to_char (cast (created_at as date)، 'YYYY-MM') من sf_transactions

يحدد السؤال أيضًا تنسيقًا للتواريخ ، لذلك يمكننا استخدام الدالةTO_CHAR () في SQL لإخراج التاريخ بهذا التنسيق.

لحساب النمو ، يجب علينا أيضًا تحديد دالة التجميع created_at و SUM () للحصول على حجم إجمالي المبيعات لذلك التاريخ. 

حدد to_char (cast (created_at as date)، 'YYYY-MM')، created_at، sum (value) FROM sf_transactions

في هذه المرحلة ، يتعين علينا استخدام وظائف النافذة مرة أخرى. على وجه التحديد ، سنستخدم وظيفة LAG () للوصول إلى حجم الشهر الماضي وعرضه كعمود منفصل. لذلك ، سنحتاج أيضًا إلى عبارة OVER.

حدد 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 للمهنيين ذوي الخبرة


 

هنا ، لدينا التواريخ والقيم الإجمالية المقابلة في عمود المجموع ، وقيم التاريخ الأخير في عمود التأخير. يمكننا الآن إدخال القيم في الصيغة وعرض معدل النمو في عمود منفصل.

يجب علينا أيضًا إزالة العمود created_at غير الضروري ، وتغيير جملتي GROUP BY و ORDER BY إلى year_month.

حدد 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 للمهنيين ذوي الخبرة


 

الآن يمكننا أخيرًا الوصول إلى الحل. إليك ما سيبدو عليه الرمز النهائي:

حدد 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يرادات_diff_pct من sf_transactions GROUP BY year_month WINDOW w AS (ORDER BY to_char (created_at :: date، 'YYYY-MM')) ORDER BY year_month ASC


 

في هذا الكود ، نأخذ قيمتين من العمود من المثال السابق ونحسب الفرق بينهما. لاحظ أننا نستخدم أيضًا الأسماء المستعارة للنافذة لتقليل تكرار الكود الخاص بنا.

بعد ذلك ، وفقًا للخوارزمية ، نقسمها على إيرادات الشهر الحالي ونضربها في 100 للحصول على قيمة النسبة المئوية. أخيرًا ، نقرب قيمة النسبة المئوية إلى نقطتين عشريتين. نصل إلى الإجابة التي تلبي جميع متطلبات المهمة. 

المفهوم المتقدم N4: معدلات التموج

 
على الرغم من أنه عكس النمو ، إلا أن الاضطراب يعد مقياسًا مهمًا أيضًا. تتعقب العديد من الشركات معدلات التغيير ، خاصة إذا كان نموذج أعمالها يعتمد على الاشتراك. بهذه الطريقة ، يمكنهم تتبع عدد الاشتراكات أو الحسابات المفقودة ، والتنبؤ بالأسباب التي تسببت في ذلك. من المتوقع أن يعرف عالم البيانات المتمرس الوظائف والعبارات والجمل التي يجب استخدامها لحساب معدلات التغيير.

بيانات الاشتراك خاصة جدًا وتحتوي على معلومات خاصة بالمستخدم. من المهم أيضًا أن يعرف علماء البيانات كيفية التعامل مع هذه البيانات دون تعريضها. غالبًا ما يتضمن حساب معدلات التذبذب تعبيرات الجدول الشائعة ، والتي تعد مفهومًا جديدًا نسبيًا. يجب أن يعرف أفضل علماء البيانات سبب فائدة الاعتلال الدماغي الرضحي المزمن ومتى يستخدمونها. عند العمل مع قواعد البيانات القديمة ، حيث لا تتوفر CTEs ، يجب أن يظل المرشح المثالي قادرًا على إنجاز المهمة.

هذا مثال على مهمة صعبة. يتلقى المرشحون الذين يجرون مقابلات مع Lyft هذه المهمة لحساب معدل إزعاج السائقين في الشركة.

لحل هذه المشكلة ، يجب على علماء البيانات استخدام عبارات الحالة / when ، ووظائف النافذة مثل LAG () ، وكذلك من / WHERE ، وغيرها من الجمل الأساسية. 

وفي الختام

 
من المؤكد أن العمل كعالم بيانات لسنوات عديدة يبدو مثيرًا للإعجاب في سيرة ذاتية ، وسيوفر لك العديد من المقابلات. ومع ذلك ، بمجرد أن تحصل على قدمك في الباب ، لا تزال بحاجة إلى عرض المعرفة لاستكمال سنوات من الخبرة. حتى لو كان لديك خبرة واسعة في كتابة الاستفسارات في SQL، لا يضر استخدام موارد مثل ستراتا سكراتش لتحديث معرفتك.

 
 
نيت روزيدي هو عالم بيانات وفي استراتيجية المنتج. وهو أيضًا أستاذ مساعد يقوم بتدريس التحليلات ، وهو مؤسس ستراتا سكراتش، وهي منصة تساعد علماء البيانات على الاستعداد لمقابلاتهم مع أسئلة مقابلة حقيقية من الشركات الكبرى. تواصل معه تويتر: StrataScratch or لينكدين:.

المصدر: https://www.kdnuggets.com/2022/01/sql-interview-questions-experienced-professionals.html

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة