ٹاپ فائیو ایس کیو ایل ونڈو فنکشنز جو آپ کو ڈیٹا سائنس انٹرویوز کے لیے جاننا چاہیے۔

ماخذ نوڈ: 1582448

ٹاپ فائیو ایس کیو ایل ونڈو فنکشنز جو آپ کو ڈیٹا سائنس انٹرویوز کے لیے جاننا چاہیے۔
 

ایس کیو ایل ڈیٹا کی دنیا میں عالمگیر زبان ہے اور ڈیٹا پروفیشنل کے طور پر کام کرنے کی سب سے اہم مہارت ہے۔

ایس کیو ایل کے اس قدر اہم ہونے کی وجہ یہ ہے کہ یہ وہ بنیادی مہارت ہے جو ڈیٹا رینگلنگ مرحلے کے دوران درکار ہوتی ہے۔ بہت ساری ڈیٹا ایکسپلوریشن، ڈیٹا ہیرا پھیری، پائپ لائن ڈویلپمنٹ، اور ڈیش بورڈ کی تخلیق SQL کے ذریعے کی جاتی ہے۔

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

اس کے ساتھ کہا، آئیے اس میں غوطہ لگائیں!

1. LEAD() اور LAG() کے ساتھ ڈیلٹا

 
LEAD() اور LAG() زیادہ تر اس وقت استعمال ہوتے ہیں جب کسی مقررہ میٹرک کے لیے وقت کی پچھلی مدت کے ساتھ ایک مدت کا موازنہ کیا جائے۔ چند مثالیں دینے کے لیے…

  • آپ ہر سال کی فروخت اور پچھلے سال کی فروخت کے درمیان ڈیلٹا حاصل کر سکتے ہیں۔
  • آپ ایک ماہ سے مہینے کی بنیاد پر سائن اپس/تبادلوں/ویب سائٹ وزٹ کی تعداد میں ڈیلٹا حاصل کر سکتے ہیں
  • آپ ماہانہ بنیادوں پر صارف منتھن کا موازنہ کر سکتے ہیں۔

: مثال کے طور پر

درج ذیل استفسار سے پتہ چلتا ہے کہ آپ اخراجات میں ماہانہ فیصد تبدیلی کے بارے میں کیسے استفسار کر سکتے ہیں۔

with monthly_costs as ( SELECT date , monthlycosts , LEAD(monthlycosts) OVER (ORDER BY date) as previousCosts FROM costs )SELECT date , (monthlycosts - previousCosts) / previousCosts * 100 AS costPercentChange FROM monthly_costs

2. SUM() یا COUNT() کے ساتھ مجموعی رقم

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

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

: مثال کے طور پر

درج ذیل مثال سے پتہ چلتا ہے کہ آپ کس طرح ماہانہ اخراجات کے مجموعی کالم کو شامل کر سکتے ہیں:

SELECT date , monthlycosts , SUM(monthlycosts) OVER (ORDER BY date) as cumCosts FROM cost_table

3. AVG() کے ساتھ حرکت پذیری اوسط

 
AVG() ونڈوز کے فنکشنز میں واقعی طاقتور ہے کیونکہ یہ آپ کو حساب کرنے کی اجازت دیتا ہے۔ منتقل اوسط اضافی وقت.

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

مزید خاص طور پر…

  • ان کا استعمال ہفتہ وار فروخت کے عمومی رجحان کو حاصل کرنے کے لیے کیا جا سکتا ہے (کیا وقت کے ساتھ اوسط بڑھ رہی ہے؟) یہ ایک کمپنی کے طور پر ترقی کی نشاندہی کرے گا.
  • ان کا استعمال ہفتہ وار تبادلوں یا ویب سائٹ کے وزٹ کے عمومی رجحان کو حاصل کرنے کے لیے بھی کیا جا سکتا ہے۔

: مثال کے طور پر

درج ذیل استفسار تبادلوں کے لیے 10 دن کی موونگ ایوریج حاصل کرنے کی ایک مثال ہے۔

SELECT Date , dailyConversions , AVG(dailyConversions) OVER (ORDER BY Date ROWS 10 PRECEDING) AS 10_dayMovingAverage FROM conversions

4. ROW_NUMBER()

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

: مثال کے طور پر

یہ مثال دکھاتی ہے کہ آپ کس طرح ROW_NUMBER() کو استعمال کر کے ہر رکن (صارف) کے آنے کی پہلی تاریخ حاصل کر سکتے ہیں۔

with numbered_visits as ( SELECT memberId , visitDate , ROW_NUMBER() OVER (PARTITION BY customerId ORDER BY purchaseDate) as rowNumber FROM gym_visits )SELECT * FROM numbered_visits WHERE rowNumber = 1

دوبارہ حاصل کرنے کے لیے، اگر آپ کو کبھی پہلا یا آخری ریکارڈ حاصل کرنے کی ضرورت ہو، تو ROW_NUMBER() اسے حاصل کرنے کا ایک بہترین طریقہ ہے۔

5. DENSE_RANK() کے ساتھ ریکارڈ رینکنگ

 
DENSE_RANK() ROW_NUMBER() سے ملتا جلتا ہے سوائے اس کے کہ یہ مساوی اقدار کے لیے ایک ہی درجہ لوٹاتا ہے۔ جب ٹاپ ریکارڈز کو بازیافت کرنے کی بات آتی ہے تو گھنے درجہ بندی کافی مفید ہے، مثال کے طور پر:

  • اگر آپ اس ہفتے نیٹ فلکس کے سب سے زیادہ دیکھے جانے والے 10 شوز کو کھینچنا چاہتے ہیں۔
  • اگر آپ خرچ کیے گئے ڈالر کی بنیاد پر ٹاپ 100 صارفین حاصل کرنا چاہتے ہیں۔
  • اگر آپ 1000 سب سے کم فعال صارفین کا برتاؤ دیکھنا چاہتے ہیں۔

: مثال کے طور پر

اگر آپ کل فروخت کے لحاظ سے اپنے اعلیٰ گاہکوں کی درجہ بندی کرنا چاہتے ہیں، DENSE_RANK() استعمال کرنے کے لیے ایک مناسب فنکشن ہوگا۔

SELECT customerId , totalSales , DENSE_RANK() OVER (ORDER BY totalSales DESC) as rank FROM customers

پڑھنے کا شکریہ!

 
اور بس یہی! مجھے امید ہے کہ اس سے آپ کے انٹرویو کی تیاری میں مدد ملے گی — مجھے یقین ہے کہ اگر آپ ان 5 تصورات کو اندر سے جانتے ہیں، تو آپ بہت اچھا کام کریں گے جب بات وہاں موجود SQL ونڈو فنکشن کے مسائل کی ہو گی۔

ہمیشہ کی طرح، میں آپ کی سیکھنے کی کوششوں میں آپ کی بہترین خواہش کرتا ہوں!

 
 
ٹیرنس شن ایس کیو ایل میں 3+ سال کا تجربہ اور Python میں 2+ سال کا تجربہ رکھنے والا ڈیٹا کا شوقین ہے، اور Towards Data Science اور KDnuggets پر ایک بلاگر ہے۔

حقیقی. اجازت کے ساتھ دوبارہ پوسٹ کیا۔

ماخذ: https://www.kdnuggets.com/2022/01/top-five-sql-window-functions-know-data-science-interviews.html

ٹائم اسٹیمپ:

سے زیادہ KDnuggets