Problem
Table: Spotify
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| id | int |
| track_name | varchar |
| artist | varchar |
+-------------+---------+
id is the primary key (column with unique values) for this table.
Each row contains an id, track_name, and artist.
Write a solution to find how many times each artist appeared on the Spotify ranking list.
Return the result table having the artist’s name along with the corresponding number of occurrences ordered by occurrence count in descending order. If the occurrences are equal, then it’s ordered by the artist’s name in ascending order.
The result format is in the following example.
Examples
Example 1:
|
|
Solution
Method 1 – SQL Group By and Count 1
Intuition
To count how many times each artist appears, we group the Spotify table by artist and count the number of rows for each artist. We then order the results by the count in descending order, and by artist name in ascending order for ties.
Approach
- Group the Spotify table by artist.
- Count the number of occurrences for each artist.
- Order the result by occurrence count descending, then by artist name ascending.
Code
|
|
|
|
|
|
Complexity
- ⏰ Time complexity:
O(n log n)
, where n is the number of rows in the Spotify table, due to the group by and sort operations. - 🧺 Space complexity:
O(n)
, for storing the grouped and sorted results.