MySQL ROW_NUMBER() Function Aur Iska Real-Life Usage | Complete Guide With Example

Other Blogs

Blogs ❯❯ SQL

Image could not load

MySQL's ROW_NUMBER() by Susan Holt Simpson on Unsplash

आज के data-driven world में, databases का सही use करना बहुत जरूरी है। MySQL एक popular database management system है जो developers और DBAs के बीच काफी famous है।

अगर आप data को organize करना चाहते हैं या किसी result set में unique numbering चाहिए, तो ROW_NUMBER() function आपके लिए बहुत useful है।

इस blog में हम detail में समझेंगे कि MySQL में ROW_NUMBER() क्या है, इसका syntax क्या है, और real-life में इसका कैसे use कर सकते हैं। साथ ही, कुछ practical examples भी देखेंगे जो आपके daily SQL queries को और powerful बना देंगे।

MySQL ROW_NUMBER() क्या है?

ROW_NUMBER() एक window function है जो result set के हर row को एक unique sequential number assign करता है। ये numbering 1 से start होती है और हर row के लिए increment होती है।

इसका use आप data को order करने, rank देने, या pagination के लिए कर सकते हैं।

Syntax

SELECT 
    column1, 
    column2, 
    ROW_NUMBER() OVER (PARTITION BY columnX ORDER BY columnY) AS row_num
FROM table_name;
  • PARTITION BY : Optional है, इससे आप data को groups में divide कर सकते हैं।

  • ORDER BY : ये specify करता है कि numbering किस order में assign होगी।

ROW_NUMBER() कैसे काम करता है?

Suppose , आपके पास एक employees table है जिसमे employees के नाम, department, और salary है।

अगर आप हर department के अंदर employees को salary के descending order में rank करना चाहते हैं, तो आप ROW_NUMBER() का use कर सकते हैं।

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

इस query में हर department के employees को उनकी salary के according से rank मिलेगा, जिसमे सबसे ज़्यादा salary wale को 1 मिलेगा।

Real-Life Usage of ROW_NUMBER()

1. Pagination (Page-wise Data Display)

Web applications में जब आपको data को pages में दिखाना होता है, तो ROW_NUMBER() बहुत useful होता है। आप rows को number कर के easily specific page के records fetch कर सकते हैं।

WITH NumberedEmployees AS ( SELECT employee_name, ROW_NUMBER() OVER (ORDER BY employee_id) AS row_num FROM employees ) SELECT * FROM NumberedEmployees WHERE row_num BETWEEN 11 AND 20; -- Page 2 ke records (assuming 10 per page)

2. Top N Records Per Group

अगर आपको हर department के top 3 highest salary wale employees चाहिए, तो ROW_NUMBER() से ये काम आसानी से हो जाता है।

SELECT * FROM ( SELECT employee_name, department, salary, ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) AS rn FROM employees ) AS ranked_employees WHERE rn <= 3;

ROW_NUMBER() vs Other Ranking Functions

  • ROW_NUMBER() हर row को unique number देता है, चाहे values same हो या न हो।

  • RANK() और DENSE_RANK() में ties के case में same rank मिलता है, लेकिन numbering में फर्क होता है। 

  • अगर आपको strictly unique numbering चाहिए, तो ROW_NUMBER() best है।

Conclusion

MySQL ROW_NUMBER() एक powerful window function है जो rows को sequential number assign करता है। इसका use pagination, duplicate removal, और top-N queries में होता है।

अगर आप complex reports या dashboards बना रहे हैं, तो ROW_NUMBER() आपके लिए बहुत useful होगा।

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 !