DENSE_RANK() in SQL Server

DENSE_RANK() in SQL Server - पूरी जानकारी

DENSE_RANK() in SQL Server - पूरी जानकारी

Definition: DENSE_RANK() एक Ranking Function है जो SQL Server में rows को उनके order के हिसाब से Rank देता है। यह gaps नहीं छोड़ता जैसे RANK() करता है।

📌 Syntax:

DENSE_RANK() OVER (
    PARTITION BY column_name 
    ORDER BY column_name [ASC|DESC]
) AS alias_name

📌 Example Table:

CREATE TABLE Employees (
    EmpID INT,
    Name VARCHAR(100),
    Department VARCHAR(50),
    Salary INT
);

INSERT INTO Employees VALUES
(1, 'Amit', 'IT', 50000),
(2, 'Rahul', 'IT', 60000),
(3, 'Pooja', 'HR', 45000),
(4, 'Kiran', 'HR', 45000),
(5, 'Sunil', 'IT', 50000),
(6, 'Neha', 'HR', 60000);

📌 Query using DENSE_RANK():

SELECT 
    Name, Department, Salary,
    DENSE_RANK() OVER (
        PARTITION BY Department 
        ORDER BY Salary DESC
    ) AS SalaryRank
FROM Employees;

📌 Output:

Name Department Salary SalaryRank
RahulIT600001
AmitIT500002
SunilIT500002
NehaHR600001
PoojaHR450002
KiranHR450002

📝 Important Points:

  • DENSE_RANK() gaps नहीं छोड़ता।
  • अगर दो rows की value same हो तो उन्हें same rank दी जाती है।
  • PARTITION BY optional होता है – यह data को group करने के लिए use होता है।
  • ORDER BY define करता है कि rank ascending या descending order में मिलेगी।
Use Case: जब आपको टाई स्कोर (same values) के लिए same rank चाहिए और gap नहीं चाहिए — तब DENSE_RANK() सबसे उपयोगी होता है।

Post a Comment

0 Comments