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