1. Introduction
In this blog post, we'll explore how to use MySQL to rank scores in a database. This is a common task in SQL that involves assigning a rank to each row within a partition of a result set.
Problem
The challenge is to write a MySQL query that assigns a rank to each score in the database table. The rank should be calculated based on the score in descending order.
Database Table:
Scores Table:| id | score | 
|---|---|
| 1 | 90 | 
| 2 | 87 | 
| 3 | 85 | 
3. MySQL Solution
SELECT
    score,
    DENSE_RANK() OVER (ORDER BY score DESC) as `rank`
FROM Scores;
Output:
| score | rank | 
|---|---|
| 90 | 1 | 
| 87 | 2 | 
| 85 | 3 | 
Explanation:
1. The DENSE_RANK() window function is used to assign a rank to each score.
2. Scores are ordered in descending order.
3. Each distinct score gets a unique rank, with ties receiving the same rank.
4. This approach ensures that there are no gaps in ranking numbers.
Comments
Post a Comment