SQL DENSE_RANK() فنکشن

Sql Dense Rank Fnkshn



ونڈو فنکشنز ایس کیو ایل میں ایک اہم خصوصیت ہیں اور ایس کیو ایل ڈیٹا بیس میں ڈیٹا کے پیچیدہ حسابات اور آپریشنز میں بنیادی کردار ادا کرتے ہیں۔ ایس کیو ایل ونڈو کے فنکشنز میں سے ایک ڈینس_رینک () ہے۔

DENSE_RANK() فنکشن ہمیں ایک اور مخصوص کالم میں اقدار کی بنیاد پر نتیجہ کے سیٹ کے اندر ہر قطار کو ایک منفرد درجہ تفویض کرنے کی اجازت دیتا ہے۔ یہ rank() فنکشن سے بہت ملتا جلتا ہے لیکن اس میں معمولی فرق کے ساتھ کہ فنکشن ڈپلیکیٹ ریکارڈز کو کیسے ہینڈل کرتا ہے۔

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







یہ کیسے کام کرتا ہے

آئیے یہ بتاتے ہوئے شروع کریں کہ یہ فنکشن کیسے کام کرتا ہے۔ یہ ذہن میں رکھنا اچھا ہے کہ فنکشن اعلی درجے کا ہے، اور ہم بنیادی نفاذ کی وضاحت نہیں کر سکتے۔



فنکشن رینک 1 سے شروع ہونے والے رزلٹ سیٹ میں ہر قطار کو ایک رینک تفویض کرکے اور کالموں میں ہر منفرد قدر کے لیے 1 تک بڑھا کر کام کرتا ہے۔



مخصوص کالموں میں ملتی جلتی قدروں (ڈپلیکیٹس) والی قطاریں ایک ہی رینک کے ساتھ تفویض کی جاتی ہیں اور مختلف قدر والی اگلی قطار کو اگلی دستیاب رینک کے ساتھ تفویض کیا جاتا ہے، بغیر کسی خلا کے۔





جیسا کہ ہم نے ذکر کیا ہے، فنکشن کوئی خلا نہیں چھوڑتا ہے جہاں ڈپلیکیٹ ویلیوز ہوں جو اسے rank() فنکشن سے مختلف بناتی ہیں۔

dense_rank() فنکشن کا عام استعمال درجہ بندی کی کارروائیوں کو انجام دے رہا ہے۔ مثال کے طور پر، ہم اسے ٹاپ N ریکارڈز وغیرہ تلاش کرنے کے لیے استعمال کر سکتے ہیں۔



فنکشن نحو:

درج ذیل dense_rank() فنکشن کے نحو کو بیان کرتا ہے:

DENSE_RANK() اوور (

[PARTITION by partition_expression، ... ]

ترتیب بذریعہ ترتیب_اظہار [ASC | DESC]، ...

)

دیئے گئے نحو میں:

  1. ہم خود dense_rank() فنکشن سے شروع کرتے ہیں۔
  2. اوور شق ونڈو فنکشن کی وضاحتوں کے آغاز کا اشارہ دیتی ہے۔ یہ اس بات کی وضاحت کرتا ہے کہ نتائج کے سیٹ کے اندر درجہ بندی کیسے لاگو ہوتی ہے۔
  3. PARTITION BY partition_expression ایک اختیاری شق ہے جو ہمیں ایک یا زیادہ کالموں کی بنیاد پر نتیجے کے سیٹ کو گروپس یا پارٹیشنز میں تقسیم کرنے کی اجازت دیتی ہے۔ رینکنگ ہر پارٹیشن پر الگ سے لاگو ہوتی ہے جس میں رینک کو نئے پارٹیشن پر ری سیٹ کیا جاتا ہے۔
  4. ORDER BY sort_expression اس ترتیب کی وضاحت کرتا ہے جس میں ہم نتیجہ والے پارٹیشنز میں ڈیٹا کو ترتیب دینے کے لیے استعمال کرنا چاہتے ہیں۔

نمونہ ڈیٹا

dense_rank() فنکشن کو استعمال کرنے کا طریقہ دکھانے کے لیے، آئیے نمونے کے اعداد و شمار کے ساتھ ٹیبل کے ساتھ شروع کریں۔ ہمارے معاملے میں، ہم ایک نمونہ 'آرڈرز' ٹیبل کو مندرجہ ذیل استعمال کرتے ہیں:

مثال 1: Dense_Rank() فنکشن کا استعمال

ہم قیمت کی بنیاد پر نتیجے میں آرڈرز کی درجہ بندی کرنے کے لیے dense_rank() فنکشن استعمال کر سکتے ہیں۔ مندرجہ ذیل مثال کے سوال پر غور کریں:

منتخب کریں۔

آرڈر کی شناخت،

customer_username،

پروڈکٹ_خرید ہوا،

DENSE_RANK() اوور (

ترتیب BY

قیمت DISC

) قیمت_درجہ

سے

احکامات o

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

نتیجے کی پیداوار مندرجہ ذیل ہے:

مثال 2: PARTITION BY

ہم ڈیٹا کو مختلف حصوں میں گروپ کرنے کے لیے PARTITION BY شق بھی شامل کر سکتے ہیں جیسے کہ خریدی گئی پروڈکٹ کی بنیاد پر۔

ایک مثال استفسار حسب ذیل ہے:

منتخب کریں۔

آرڈر کی شناخت،

customer_username،

پروڈکٹ_خرید ہوا،

DENSE_RANK() اوور (

پروڈکٹ_خرید کے لحاظ سے تقسیم

ترتیب BY

قیمت DISC

) قیمت_درجہ

سے

احکامات o

اس کے نتیجے میں آنے والے گروپس کی بنیاد پر ڈیٹا کو مختلف گروپس میں گروپ کرنا چاہیے اور ہر گروپ میں آئٹمز کے لیے درجہ بندی کا اطلاق کرنا چاہیے۔

نتیجہ

اس پوسٹ میں، ہم نے ایس کیو ایل میں dense_rank() ونڈو فنکشن کو استعمال کرنے اور اس کے ساتھ کام کرنے کے بنیادی اصول سیکھے ہیں تاکہ مخصوص کالموں کی بنیاد پر اقدار کو درجہ تفویض کیا جا سکے۔