How I solved LeetCode Challenge, Rank Scores!

Danielle Torres
2 min readJun 28, 2021

Hi Everyone,

Today I will be reviewing how I solved LeetCode challenge, Rank Scores, using SQL.

Objective: Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ranking. Note that after a tie, the next ranking number should be the next consecutive integer value. In other words, there should be no “holes” between ranks.

+----+-------+
| Id | Score |
+----+-------+
| 1 | 3.50 |
| 2 | 3.65 |
| 3 | 4.00 |
| 4 | 3.85 |
| 5 | 4.00 |
| 6 | 3.65 |
+----+-------+

For example, given the above Scores table, your query should generate the following report (order by highest score):

+-------+---------+
| score | Rank |
+-------+---------+
| 4.00 | 1 |
| 4.00 | 1 |
| 3.85 | 2 |
| 3.65 | 3 |
| 3.65 | 3 |
| 3.50 | 4 |
+-------+---------+

Important Note: For MySQL solutions, to escape reserved words used as column names, you can use an apostrophe before and after the keyword. For example `Rank`.

I solved this problem using Dense Rank. It’s similar to the Rank function. However, the Rank function can cause non-consecutive rankings if the tested values are the same.

I experienced this while trying to solve this challenge. Dense_Rank will always result in consecutive rankings.

It Passed!

Here is my final code:

select score,
dense_rank() over (order by score desc) as rank
from scores;

Runtime: 448 ms, faster than 92.50% of Oracle online submissions for Rank Scores.

Memory Usage: 0B, less than 100.00% of Oracle online submissions for Rank Scores.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Danielle Torres
Danielle Torres

Written by Danielle Torres

Highly organized & motivated Software Engineer with an application analyst/data analyst background.

No responses yet

Write a response