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 |
|---|---|---|---|
| Rahul | IT | 60000 | 1 |
| Amit | IT | 50000 | 2 |
| Sunil | IT | 50000 | 2 |
| Neha | HR | 60000 | 1 |
| Pooja | HR | 45000 | 2 |
| Kiran | HR | 45000 | 2 |
📝 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() सबसे उपयोगी होता है।
0 Comments