Percentage of Users Attended a Contest — LeetCode 1633 Python Solution

EasyDatabase
Problem
#1633
Reading time
3 min

Table schema

SQL
Table: Users +-------------+---------+ | Column Name | Type | +-------------+---------+ | user_id | int | | user_name | varchar | +-------------+---------+ user_id is the primary key (column with unique values) for this table. Each row of this table contains the name and the id of a user.

Example

SQL
+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| user_id     | int     |
| user_name   | varchar |
+-------------+---------+
user_id is the primary key (column with unique values) for this table.
Each row of this table contains the name and the id of a user.

Python solution

Python
import duckdb
import pandas as pd

def solution(users: pd.DataFrame, register: pd.DataFrame) -> pd.DataFrame:
    con = duckdb.connect()
    con.register("Users", users)
    con.register("Register", register)
    return con.execute("""SELECT
    contest_id,
    ROUND(COUNT(1) * 100 / (SELECT COUNT(1) FROM Users), 2) AS percentage
FROM Register
GROUP BY 1
ORDER BY 2 DESC, 1;""").df()

Complexity

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

Related problems

Frequently asked questions

How hard is LeetCode 1633. Percentage of Users Attended a Contest?
LeetCode 1633. Percentage of Users Attended a Contest is rated Easy on LeetCode.
What topics does LeetCode 1633. Percentage of Users Attended a Contest cover?
LeetCode 1633. Percentage of Users Attended a Contest is tagged Database on LeetCode.

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