MySQL RANK() vs DENSE_RANK() Method: Detailed Comparison in Hindi

Other Blogs

Blogs ❯❯ SQL

Image could not load

RANK() vs DENSE_RANK() by Joshua Golde on Unsplash

आज के modern data analysis और reporting में ranking functions काफी important role play करते हैं। अगर आप MySQL use करते हैं, तो शायद आपने RANK() और DENSE_RANK() functions के बारे में सुना होगा।

लेकिन क्या आप जानते हैं कि ये दोनो functions कैसे काम करते हैं और इनमे

क्या फर्क है? इस blog में हम MySQL के RANK() और DENSE_RANK() functions को detail में समझेंगे, examples के साथ, ताकि आप अपने queries में इनका सही use कर सकें।

Ranking Functions क्या होते हैं?

Ranking functions SQL के window functions होते हैं जो rows को किसी order के according से rank करते हैं।

ये functions तब useful होते हैं जब आपको data को order करना हो और हर row को एक rank assign करना हो, जैसे कि leaderboard, sales ranking, या किसी भी ordered list में position दिखानी हो।

MySQL RANK() Function क्या है?

`RANK()` function rows को order करता है और उन्हें rank assign करता है। अगर दो या ज़्यादा rows कि value same होती है (tie होता है), तो उन्हें same rank मिलता है, लेकिन अगला rank gap के साथ assign होता है।

SELECT employee_name, department, salary, RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS rank FROM employees;

अगर दो employees कि salary same है, दोनो को same rank मिलेगा, लेकिन अगला rank उस gap के according आगे बढ़ेगा।

जैसे अगर दो log rank 1 पर हैं, तो अगला rank 3 होगा (2 नहीं).

MySQL DENSE_RANK() Function क्या है?

DENSE_RANK() भी ranking assign करता है, लेकिन ये gap नहीं छोड़ता। अगर दो या ज़्यादा rows कि value same होती है, तो उन्हें same rank मिलता है, और अगला rank उसके तुरंत बाद आता है।

SELECT employee_name, department, salary, DENSE_RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS dense_rank FROM employees;

इस example में अगर दो employees rank 1 पर हैं, तो अगला rank 2 होगा, बिना किसी gap के।

RANK() और DENSE_RANK() में क्या फर्क है?

FeatureRANK()DENSE_RANK()

Rank Assignment

Tie होने पर same rank, gap छोड़ेगा।

Tie होने पर same rank, gap नहीं छोड़ेगा।

Next Rank Value

Gap के साथ next rank assign करता है

next rank तुरंत assign करता है।

Use Case

जब आपको gap चाहिए ranking में

जब continuous ranking चाहिए without gaps

Practical Example

suppose हमारे पास employees table हाँ जिसमे employee, salary column हैं।

employeesalary

A

5000

B

5000

C

4000

D

3000

  • RANK() assign करेगा : A=1, B=1, C=3, D=4

  • DENSE_RANK() assign करेगा : A=1, B=1, C=2, D=3

कब Use करें RANK() और कब DENSE_RANK()?

  • RANK() तब use करें जब आपको ranking में gaps चाहिए, जैसे कि competition में ties के बाद अगला position skip करना।

  • DENSE_RANK() तब use करें जब आपको continuous ranking चाहिए बिना किसी gap के, जैसे कि sales reports या leaderboard जहाँ हर position important हो।

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 5.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook

Your Thought ?

Please wait . . .

    Recent Blogs

    Loading ...

    0 Comment(s) found !