تجربہ کار پیشہ ور افراد کے لیے SQL انٹرویو کے سوالات

ماخذ نوڈ: 1586233

تجربہ کار پیشہ ور افراد کے لیے SQL انٹرویو کے سوالات
 

تعارف

 
If you’re an experienced data scientist looking for a job, you could not have picked a better time. As of right now, many established organizations are looking for data scientists who know their craft inside and out. However, the high demand doesn’t mean that you can, or should jump through hoops and apply for senior positions without a certain skill set. When hiring experienced data scientists, companies expect them to work on the most difficult tasks at hand. These employees should have a good grasp of even the most obscure features so that they can use them when necessary.

یہ تعجب کی بات نہیں ہونی چاہیے کہ جب سینئر عہدوں کے لیے انٹرویو دیتے ہیں تو تجربہ کار ڈیٹا سائنسدانوں سے زیادہ مشکل سوالات پوچھے جاتے ہیں۔ اکثر، جب ایک ہی کام پر چند سال کام کرتے ہیں، تو ڈیٹا سائنسدان بعض دہرائے جانے والے کاموں کو انجام دینے میں بہت ماہر ہو جاتے ہیں۔ پیشہ ور افراد کے لیے یہ جاننا ضروری ہے کہ SQL ان کے موجودہ علم کے ساتھ نہیں رکتا اور ختم نہیں ہوتا ہے۔ جب بات اعلیٰ درجے کے SQL تصورات کی ہو، تو ان کے علم میں اب بھی کچھ خلاء ہو سکتا ہے۔ لہذا آپ کے ڈیٹا سائنسدان کے انٹرویو میں کامیابی کے لیے مدد حاصل کرنے سے کوئی تکلیف نہیں ہوتی۔ 

SQL is the primary language for managing databases, so performing SQL operations is at the heart of data scientists’ jobs. Most data scientist interviews are arranged to determine a candidate’s knowledge of SQL. 

The everyday job might not include writing complex queries, but you must show that if such skills are needed, you’re the person capable of doing it. So it shouldn’t be surprising that interviewers ask a diverse set of ایس کیو ایل انٹرویو کے سوالات ایس کیو ایل میں امیدوار کی روانی کو جانچنے کے لیے۔

اس مضمون میں، ہم تجربہ کار پیشہ ور افراد کے انٹرویوز میں پوچھے گئے کچھ پیچیدہ سوالات اور تصورات کا خلاصہ کرنا چاہتے تھے۔ یہاں تک کہ اگر آپ کو اپنے ایس کیو ایل کے علم میں یقین ہے، تو مطلوبہ الفاظ کو اسکین کرنے اور اس بات کو یقینی بنانے میں کوئی حرج نہیں ہے کہ آپ نے ہر چیز کا احاطہ کر لیا ہے۔

تجربہ کار پیشہ ور افراد کے لیے کم از کم تصورات

کیس / کب

 
SQL پر مکمل مہارت حاصل کرنے کے لیے CASE (اور اس کے ساتھ جب بیان) کے تصور کو اچھی طرح سمجھنا ضروری ہے۔ کیس کا بیان ہمیں کچھ شرائط کی جانچ پڑتال کرنے اور اس کی بنیاد پر ایک قدر واپس کرنے کی اجازت دیتا ہے کہ آیا ان شرائط کا صحیح یا غلط کے طور پر اندازہ ہوتا ہے۔ شقوں کے ساتھ مل کر، جیسے WHERE اور ORDER BY، CASE ہمیں اپنے SQL سوالات میں منطق، شرائط اور ترتیب لانے کی اجازت دیتا ہے۔

The value of CASE statements is not limited to providing a simple conditional logic in our queries. Experienced data scientists should have more than a surface-level understanding of the CASE statement and its uses. Interviewers are likely to ask you questions about different types of CASE expressions and how to write them. 

تجربہ کار امیدواروں کو نظریاتی سوالات کے جوابات دینے کے لیے تیار رہنا چاہیے، جیسے کہ قدر شدہ اور تلاش شدہ 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 بیان کا استعمال نتیجہ کو نمبر کے طور پر فارمیٹ کرنے اور اسے زپ کوڈ کے علاوہ فیصد کی قدر کے طور پر پیش کرنے کے لیے کیا جاتا ہے۔

ایس کیو ایل جوائن کرتا ہے۔

 
It’s easy to feel confident in your knowledge of SQL Joins, but the more you explore this topic, the more you’ll discover that you don’t know. Interviewers often ask SQL جوائنز کے جدید پہلوؤں کے بارے میں انٹرویو کے سوالات جنہیں اکثر نظر انداز کیا جاتا ہے۔ اس لیے ضروری ہے کہ اس تصور کو سمجھیں اور اس پر مکمل عبور حاصل کریں۔
 
بنیادی تصورات کے علاوہ، انٹرویو لینے والے پوچھ سکتے ہیں کہ سیلف کراس جوائن کیا ہے، اور عملی سوالات کو حل کرنے کے لیے پوچھ کر اپنے علم کی گہرائی کا پتہ لگائیں۔ آپ کو جوائنز کی تمام مختلف اقسام کا علم ہونا چاہیے، بشمول زیادہ پیچیدہ اقسام، جیسے ہیش جوائنز، یا کمپوزٹ جوائنز۔ آپ سے یہ بتانے کے لیے بھی کہا جا سکتا ہے کہ قدرتی جوڑ کیا ہوتے ہیں، اور وہ کب سب سے زیادہ مفید ہوتے ہیں۔ بعض اوقات آپ کو قدرتی اور اندرونی جوڑ کے درمیان فرق کی وضاحت کرنی ہوگی۔
 
عام طور پر، آپ کو مطلوبہ نتائج حاصل کرنے کے لیے دیگر بیانات کے ساتھ جوائنز استعمال کرنے کا مکمل تجربہ اور مہارت حاصل کرنی چاہیے۔ مثال کے طور پر، آپ کو معلوم ہونا چاہیے کہ کراس جوائن کو استعمال کرنے کے لیے WHERE شق کو کس طرح استعمال کرنا ہے گویا یہ ایک اندرونی شمولیت ہے۔ آپ سے یہ بھی توقع کی جائے گی کہ سرور پر بہت زیادہ دباؤ ڈالے بغیر نئے ٹیبلز بنانے کے لیے جوائنز کا استعمال کیسے کریں۔ یا ڈیٹا بیس سے استفسار کرتے وقت گمشدہ اقدار کی شناخت اور پُر کرنے کے لیے بیرونی جوائن کا استعمال کیسے کریں۔ یا بیرونی جوڑ کے اندرونی کام، جیسے کہ حقیقت یہ ہے کہ ان کی ترتیب کو دوبارہ ترتیب دینے سے آؤٹ پٹ بدل سکتا ہے۔ 

Here’s an example of the question that involves writing an inner joint statement

This is a fairly difficult question, where the candidates are asked to display the order size as a percentage of total spending.
 
 

Advanced Concept N1: Date-time Manipulation

 
تجربہ کار پیشہ ور افراد کے لیے SQL انٹرویو کے سوالات
 

ڈیٹا بیس میں تاریخیں اور اوقات شامل کرنا عام بات ہے، اس لیے کسی بھی تجربہ کار ڈیٹا سائنسدان کو ان کے ساتھ کام کرنے کا گہرا علم ہونا چاہیے۔ اس قسم کا ڈیٹا ہمیں اس ترتیب کو ٹریک کرنے کی اجازت دیتا ہے جس میں واقعات رونما ہوتے ہیں، تعدد میں تبدیلیاں، وقفوں کا حساب لگانا، اور دیگر اہم بصیرتیں حاصل کرنا۔ اکثر اوقات ان آپریشنز کو انجام دینے کے لیے SQL میں ڈیٹ ٹائم ہیرا پھیری میں مکمل مہارت کی ضرورت ہوتی ہے۔ لہذا اس طرح کی مہارتوں کے حامل پیشہ ور افراد کو مقابلہ کرنے والے امیدواروں پر فائدہ ہوگا۔ اگر آپ کو اپنی صلاحیتوں پر 100% یقین نہیں ہے، تو ذیل میں بیان کردہ تصورات کو دیکھیں اور دیکھیں کہ ان میں سے کتنے مانوس ہیں۔

Since there are many different (but valid) approaches to formatting data in SQL, great coders should be at least familiar with them all. During the interviews, hiring managers expect knowledge of basic data formatting concepts and the ability to talk intelligently about choosing the right function for the task. This includes the knowledge of an important FORMAT() function and the associated syntax to make full use of the function. The knowledge of other basic functions, such as NOW() is also expected. Also, it wouldn’t be out of the blue for experienced professionals to get asked about basic concepts like time-series data and its purpose.

It’s also important to consider the context of the job you’re applying for. An AI or IoT company would be more concerned with tracking data collected from the sensors, whereas a stock trading app might require you to track the price fluctuations during the day, week, or month.

کچھ معاملات میں، آجر ایس کیو ایل میں مزید جدید تاریخ/وقت کے افعال کے بارے میں پوچھ سکتے ہیں، جیسے CAST()، EXTRACT()، یا DATE_TRUNC()۔ جب آپ تاریخوں پر مشتمل ڈیٹا کی ایک بڑی مقدار کے ساتھ کام کر رہے ہوں تو یہ فنکشنز انمول ہو سکتے ہیں۔ ایک تجربہ کار ڈیٹا سائنسدان کو ہر فنکشن اور اس کی ایپلی کیشنز کا مقصد معلوم ہونا چاہیے۔ ایک مثالی منظر نامے میں، اسے ماضی میں ان کے استعمال کا تجربہ ہونا چاہیے۔

The most complex date-time manipulation in SQL is going to involve the combination of basic and advanced functions. So it’s necessary to know them all, starting from the more basic FORMAT(), NOW(),CURRENT_DATE, and CURRENT_TIME, and including more advanced functions mentioned above. As an experienced data scientist, you should also know what INTERVAL does and when to use it.

Airbnb انٹرویوز میں پوچھے گئے سوال کی ایک مثال یہ ہے۔جہاں امیدواروں کو Airbnb کی ترقی کو ٹریک کرنے کے لیے دستیاب ڈیٹا کا استعمال کرنا چاہیے۔
 
 

بنیاد:

 
اس سوال میں، امیدواروں سے کہا جاتا ہے کہ وہ ہر سال سائن اپ ہونے والے میزبانوں کی تعداد میں ہونے والی تبدیلیوں کی بنیاد پر Airbnb کی ترقی کو ٹریک کریں۔ دوسرے لفظوں میں، ہم نئے رجسٹرڈ میزبانوں کی تعداد کو ہر سال ترقی کے اشارے کے طور پر استعمال کریں گے۔ ہم گزشتہ اور موجودہ سال کے درمیان میزبانوں کی تعداد میں فرق کا حساب لگا کر اور اس تعداد کو پچھلے سال کے دوران رجسٹرڈ میزبانوں کی تعداد سے تقسیم کر کے شرح نمو تلاش کریں گے۔ پھر ہم نتیجہ کو 100 سے ضرب کر کے فیصد کی قدر تلاش کریں گے۔

The output table should have columns and the corresponding data for the number of hosts in the current year, in the previous year, and the percentage of growth from year to year. The percentage must be rounded to the nearest whole number and the rows must be ordered in ascending order depending on the year.
 
 

حل:

 
To answer this question, a candidate must work with the table called ‘airbnb_search_details’, which includes many columns. The column that we need is labeled ‘host_since’, which denotes the year, month, and the day when the host first signed up for the website. For this exercise, the month and the day are irrelevant, so the first thing we’ll need to do is to extract the year from the value. Then we’ll have to create a view that includes separate columns for the current year, previous year, and the total number of hosts in that year. 

Select       extract(year FROM host_since::DATE) FROM airbnb_search_details WHERE host_since IS NOT NULL

اب تک، ہم نے دو کام کیے ہیں:

  1. We’ve made sure to only include the rows where the host_since column is not empty.
  2. ہم نے ڈیٹا سے سال نکالا ہے اور اسے DATE کی قدر کے طور پر کاسٹ کیا ہے۔
Select       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 Select       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

Here, we added the third column, which will be labeled ‘prev_year_host’ and its values are going to come from ‘current_year_host’, except for the delay of one row. Here’s what that might look like:

تجربہ کار پیشہ ور افراد کے لیے 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,           current_year_host,           LAG(current_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 host_since IS NOT NULL       GROUP BY extract(year                       FROM host_since::date)       ORDER BY year) t1) t2

یہاں، ہم ایک اور سوال اور ایک اور کالم شامل کرتے ہیں جہاں ہم شرح نمو کا حساب لگاتے ہیں۔ ہمیں کام کی ضروریات کو پورا کرنے کے لیے ابتدائی نتیجہ کو 100 سے ضرب دینا چاہیے اور اسے گول کرنا چاہیے۔ 

That’s the solution to this task. It’s clear that date-time manipulation functions were essential for completing the task. 
 
 

ایڈوانسڈ تصور N2: ونڈو فنکشنز اور پارٹیشنز

 
تجربہ کار پیشہ ور افراد کے لیے SQL انٹرویو کے سوالات
 

ایس کیو ایل ونڈو فنکشنز پیچیدہ لیکن موثر SQL سوالات لکھنے کے لیے سب سے اہم تصورات میں سے ایک ہیں۔ تجربہ کار پیشہ ور افراد سے توقع کی جاتی ہے کہ وہ ونڈو کے افعال کا گہرا عملی اور نظریاتی علم رکھتے ہیں۔ اس میں یہ جاننا کہ اوور کلاز کیا ہے اور اس کے استعمال میں مہارت حاصل کرنا شامل ہے۔ انٹرویو لینے والے پوچھ سکتے ہیں کہ اوور کی شق مجموعی افعال کو ونڈو کے افعال میں کیسے بدل سکتی ہے۔ آپ سے ان تین مجموعی فنکشنز کے بارے میں بھی پوچھا جا سکتا ہے جنہیں ونڈو فنکشنز کے طور پر استعمال کیا جا سکتا ہے۔ تجربہ کار ڈیٹا سائنسدانوں کو ونڈو کے دیگر غیر مجموعی افعال سے بھی آگاہ ہونا چاہیے۔

ونڈو فنکشنز کا بہترین استعمال کرنے کے لیے، یہ بھی جاننا چاہیے کہ PARTITION BY شق کیا ہے اور اسے کیسے استعمال کیا جائے۔ آپ سے اس کی وضاحت کرنے اور استعمال کے چند معاملات کی مثالیں فراہم کرنے کے لیے کہا جا سکتا ہے۔ بعض اوقات آپ کو ORDER_BY شق کا استعمال کرتے ہوئے پارٹیشنز کے اندر قطاروں کو منظم کرنا پڑے گا۔

وہ امیدوار جو ہر انفرادی ونڈو فنکشن کی مکمل معلومات کا مظاہرہ کر سکتے ہیں، جیسے ROW_NUMBER() کو فائدہ ہوگا۔ یہ کہنے کی ضرورت نہیں کہ صرف نظریاتی علم ہی کافی نہیں ہے – پیشہ ور افراد کو ان کو عملی طور پر استعمال کرنے کا تجربہ بھی ہونا چاہیے، پارٹیشنز کے ساتھ یا اس کے بغیر۔ مثال کے طور پر، ایک تجربہ کار پیشہ ور کو RANK() اور DENSE_RANK() کے درمیان فرق کی وضاحت کرنے کے قابل ہونا چاہیے۔ ایک مثالی امیدوار کو کچھ جدید ترین تصورات کا علم ہونا چاہیے، جیسے کہ پارٹیشنز کے اندر فریم، اور انہیں واضح طور پر بیان کرنے کے قابل ہونا چاہیے۔

عظیم امیدواروں کو NTH_VALUE() فنکشن کے استعمال کی بھی وضاحت کرنی چاہیے۔ اس فنکشن کے متبادلات کا ذکر کرنے سے تکلیف نہیں ہوگی، جیسے FIRST_VALUE() اور LAST_VALUE() فنکشنز۔ کمپنیاں اکثر عام طور پر کوارٹائل، کوانٹائل اور پرسنٹائل کی پیمائش کرنا پسند کرتی ہیں۔ اس آپریشن کو انجام دینے کے لیے، ڈیٹا سائنسدانوں کو معلوم ہونا چاہیے کہ NTILE() ونڈو فنکشن کو بھی کیسے استعمال کیا جائے۔

ایس کیو ایل میں، عام طور پر کسی کام تک پہنچنے کے بہت سے طریقے ہوتے ہیں۔ پھر بھی، ونڈو کے افعال عام، لیکن پیچیدہ آپریشن انجام دینے کا سب سے آسان طریقہ فراہم کرتے ہیں۔ اس طرح کے ونڈو فنکشن کی ایک اچھی مثال LAG() یا LEAD() ہے، لہذا آپ کو ان سے بھی واقف ہونا چاہیے۔ مثال کے طور پر، آئیے ایک مشکل Airbnb انٹرویو کے سوال کے پچھلے حل سے ایک مثال دیکھیں:

پچھلے سال میں میزبانوں کی تعداد ظاہر کرنے کے لیے، ہم نے اوور اسٹیٹمنٹ کے ساتھ LAG() فنکشن کا استعمال کیا۔ یہ بہت سے دوسرے طریقوں سے بھی کیا جا سکتا تھا، لیکن ونڈو فنکشنز نے ہمیں SQL کوڈ کی صرف ایک لائن میں مطلوبہ نتیجہ حاصل کرنے کی اجازت دی۔

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

بہت سی کمپنیوں کو ایک مخصوص مدت کے دوران ترقی کا حساب لگانے کی ضرورت ہوتی ہے۔ LAG() فنکشن ایسی اسائنمنٹس کو مکمل کرنے کے لیے انمول ہو سکتا ہے۔
 
 

جدید تصور N3: مہینہ بہ مہینہ ترقی

 
تجربہ کار پیشہ ور افراد کے لیے SQL انٹرویو کے سوالات
 

بہت سی تنظیمیں اپنی کارکردگی کی پیمائش کے لیے ڈیٹا تجزیہ کا استعمال کرتی ہیں۔ اس میں کسی مخصوص سرمایہ کاری پر مارکیٹنگ مہمات یا ROI کی تاثیر کی پیمائش کرنا پڑ سکتا ہے۔ اس طرح کے تجزیے کو انجام دینے کے لیے SQL کے بارے میں گہرائی سے معلومات کی ضرورت ہوتی ہے، جیسے کہ تاریخ، وقت، اور ونڈو کے افعال۔

ڈیٹا سائنسدانوں کو ڈیٹا کو فارمیٹ کرنے اور اسے فیصد یا کسی اور شکل میں ظاہر کرنے میں بھی اپنی مہارت ثابت کرنی ہوگی۔ عام طور پر، عملی سوالات کو حل کرنے کے لیے جہاں آپ کو ماہ بہ ماہ ترقی کا حساب لگانا ہوتا ہے، آپ کو متعدد مہارتوں کے مجموعہ کا استعمال کرنا چاہیے۔ کچھ مطلوبہ تصورات ایڈوانس ہوں گے (ونڈو فنکشنز، ڈیٹ ٹائم ہیرا پھیری)، جبکہ دیگر بنیادی ہوں گے (مجموعی افعال اور عام ایس کیو ایل اسٹیٹمنٹ)۔

Let’s look at one example question asked by Interviewers at Amazon.

بنیاد:

 
In this question, we have to work with a table of purchases and calculate monthly growth or decline in revenue. The end result must be formatted in a specific way (YYYY-MM format) and the percentages should be rounded to the second nearest decimal. 

حل:

 
When working on a task like this, the first thing you need to do is understand the table. You should also identify the columns you need to work with to answer the question. And what your output is going to look like.

ہماری مثال میں، ڈیٹا کی قدروں میں آبجیکٹ کی قسم ہوتی ہے، لہذا ہمیں CAST() فنکشن کو تاریخ کی اقسام میں تبدیل کرنے کے لیے استعمال کرنا پڑے گا۔

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

سوال تاریخوں کے لیے ایک فارمیٹ بھی بتاتا ہے، لہذا ہم اس فارمیٹ میں تاریخ کو آؤٹ پٹ کرنے کے لیے SQL میں TO_CHAR() فنکشن استعمال کر سکتے ہیں۔

ترقی کا حساب لگانے کے لیے، ہمیں اس تاریخ کے لیے کل سیلز کا حجم حاصل کرنے کے لیے create_at اور SUM() مجموعی فنکشن کو بھی منتخب کرنا چاہیے۔ 

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

At this point, we have to use window functions again. Specifically, we’re going to use the LAG() function to access last month’s volume and display it as a separate column. For that, we’ll also need an OVER clause.

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 year_month

ایک بار جب ہم کوڈ چلاتے ہیں، تو ہمارے ٹیبل میں صرف وہ کالم شامل ہونے چاہئیں جو ہمارے حساب کے لیے ضروری ہیں۔

تجربہ کار پیشہ ور افراد کے لیے 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')) ORDER BY year_month ASC


 

اس کوڈ میں، ہم پچھلی مثال سے کالم کی دو قدریں لیتے ہیں اور ان کے درمیان فرق کا حساب لگاتے ہیں۔ نوٹ کریں کہ ہم اپنے کوڈ کی تکرار کو کم کرنے کے لیے ونڈو عرفی نام بھی استعمال کرتے ہیں۔

پھر، الگورتھم کے مطابق، ہم اسے موجودہ مہینے کی آمدنی سے تقسیم کرتے ہیں اور فیصد کی قیمت حاصل کرنے کے لیے اسے 100 سے ضرب دیتے ہیں۔ آخر میں، ہم فیصد کی قدر کو دو اعشاریہ تک گول کرتے ہیں۔ ہم اس جواب پر پہنچتے ہیں جو کام کے تمام تقاضوں کو پورا کرتا ہے۔ 

اعلی درجے کا تصور N4: منحرف نرخ

 
Even though it’s the opposite of growth, churn is an important metric as well. Many companies keep track of their churn rates, especially if their business model is subscription-based. This way, they can track the number of lost subscriptions or accounts, and predict the reasons that caused it. An experienced data scientist will be expected to know which functions, statements, and clauses to use to calculate churn rates.

سبسکرپشن ڈیٹا بہت نجی ہے اور اس میں صارف کی نجی معلومات شامل ہیں۔ ڈیٹا سائنسدانوں کے لیے یہ جاننا بھی ضروری ہے کہ اس طرح کے ڈیٹا کو سامنے لائے بغیر اس کے ساتھ کیسے کام کرنا ہے۔ اکثر منتھن کی شرحوں کا حساب لگانے میں عام ٹیبل کے تاثرات شامل ہوتے ہیں، جو کہ نسبتاً نیا تصور ہے۔ بہترین ڈیٹا سائنسدانوں کو معلوم ہونا چاہیے کہ CTEs کیوں کارآمد ہیں اور انہیں کب استعمال کرنا ہے۔ پرانے ڈیٹا بیس کے ساتھ کام کرتے وقت، جہاں CTEs دستیاب نہیں ہیں، ایک مثالی امیدوار کو پھر بھی کام کرنے کے قابل ہونا چاہیے۔

Here’s an example of a difficult task. Lyft میں انٹرویو لینے والے امیدواروں کو کمپنی میں ڈرائیوروں کی کرن ریٹ کا حساب لگانے کے لیے یہ اسائنمنٹ موصول ہوتا ہے۔

اس مسئلے کو حل کرنے کے لیے، ڈیٹا سائنسدانوں کو کیس/when اسٹیٹمنٹس، ونڈو فنکشنز جیسے LAG() کے ساتھ ساتھ FROM/WHERE، اور دیگر بنیادی شقوں کا استعمال کرنا چاہیے۔ 

نتیجہ

 
کئی سالوں سے ڈیٹا سائنسدان کے طور پر کام کرنا یقیناً سی وی پر متاثر کن نظر آتا ہے، اور آپ کو بہت سے انٹرویوز ملیں گے۔ تاہم، ایک بار جب آپ دروازے پر قدم رکھتے ہیں، تب بھی آپ کو برسوں کے تجربے کی تکمیل کے لیے علم کو ظاہر کرنے کی ضرورت ہے۔ یہاں تک کہ اگر آپ کے پاس وسیع تجربہ ہے۔ ایس کیو ایل میں سوالات لکھنا، جیسے وسائل کو استعمال کرنے سے تکلیف نہیں ہوتی ہے۔ StrataScratch اپنے علم کو تازہ کرنے کے لیے۔

 
 
نیٹ روزیدی ڈیٹا سائنسدان اور مصنوعات کی حکمت عملی میں ہے۔ وہ تجزیات کی تعلیم دینے والے ایک منسلک پروفیسر بھی ہیں، اور اس کے بانی ہیں۔ StrataScratch، ایک پلیٹ فارم جو ڈیٹا سائنسدانوں کو اعلی کمپنیوں کے حقیقی انٹرویو کے سوالات کے ساتھ ان کے انٹرویوز کی تیاری میں مدد کرتا ہے۔ اس کے ساتھ جڑیں۔ ٹویٹر: StrataScratch or لنکڈ.

ماخذ: https://www.kdnuggets.com/2022/01/sql-interview-questions-experienced-professionals.html

ٹائم اسٹیمپ:

سے زیادہ KDnuggets