Compute the Rank as a Percentage — LeetCode 2346 Python Solution

MediumLeetCode PremiumDatabase
Problem
#2346
Reading time
4 min

Table schema

SQL
Table: Students +---------------+------+ | Column Name | Type | +---------------+------+ | student_id | int | | department_id | int | | mark | int | +---------------+------+ student_id contains unique values. Each row of this table indicates a student's ID, the ID of the department in which the student enrolled, and their mark in the exam.

Example

SQL
+---------------+------+
| Column Name   | Type |
+---------------+------+
| student_id    | int  |
| department_id | int  |
| mark          | int  |
+---------------+------+
student_id contains unique values.
Each row of this table indicates a student's ID, the ID of the department in which the student enrolled, and their mark in the exam.

Python solution

Python
import duckdb
import pandas as pd

def solution(students: pd.DataFrame) -> pd.DataFrame:
    con = duckdb.connect()
    con.register("Students", students)
    return con.execute("""SELECT
    student_id,
    department_id,
    IFNULL(
        ROUND(
            (
                RANK() OVER (
                    PARTITION BY department_id
                    ORDER BY mark DESC
                ) - 1
            ) * 100 / (COUNT(1) OVER (PARTITION BY department_id) - 1),
            2
        ),
        0
    ) AS percentage
FROM Students;""").df()

Complexity

MeasureComplexity
TimeO(n log n) (typical)
SpaceO(n) auxiliary

Related problems

Frequently asked questions

How hard is LeetCode 2346. Compute the Rank as a Percentage?
LeetCode 2346. Compute the Rank as a Percentage is rated Medium on LeetCode.
What topics does LeetCode 2346. Compute the Rank as a Percentage cover?
LeetCode 2346. Compute the Rank as a Percentage is tagged Database on LeetCode.
Is LeetCode 2346. Compute the Rank as a Percentage a premium problem?
Yes. LeetCode 2346. Compute the Rank as a Percentage is a LeetCode Premium problem, so the full statement and test cases require a paid LeetCode subscription.

Stuck on problems like this in a live interview?

Stealth Interview is a desktop app for macOS and Windows. It reads the problem off your screen and returns a working solution with a step-by-step explanation and its time and space complexity — invisible to screen sharing.

Get Stealth Interview