Find Followers Count
EasyUpdated: Jul 23, 2025
Practice on:
Problem
Given a table Followers with columns user_id and follower_id, write a query to find the number of followers for each user. Return the result table ordered by user_id in ascending order.
Examples
Example 1
Followers table:
| user_id | follower_id |
|---|---|
| 0 | 1 |
| 1 | 0 |
| 2 | 0 |
| 2 | 1 |
Output:
| user_id | followers_count |
|---|---|
| 0 | 1 |
| 1 | 1 |
| 2 | 2 |
Explanation:
The followers of 0 are {1}
The followers of 1 are {0}
The followers of 2 are {0,1}
Constraints
- Each row in the table represents a follower relationship.
- Each user_id and follower_id is an integer.
- The table may contain multiple users and followers.
Solution
Method 1 – Group By and Count
Intuition
To find the number of followers for each user, we count how many times each user_id appears in the Followers table. Each row represents a follower relationship, so grouping by user_id and counting gives the answer.
Approach
- Group the table by
user_id. - Count the number of rows for each
user_idto get the number of followers. - Return the result ordered by
user_idin ascending order.
Code
MySQL
SELECT user_id, COUNT(follower_id) AS followers_count
FROM Followers
GROUP BY user_id
ORDER BY user_id ASC;
PostgreSQL
SELECT user_id, COUNT(follower_id) AS followers_count
FROM Followers
GROUP BY user_id
ORDER BY user_id ASC;
Python (Pandas)
def followers_count(df: 'pd.DataFrame') -> 'pd.DataFrame':
ans = df.groupby('user_id', as_index=False)['follower_id'].count()
ans.rename(columns={'follower_id': 'followers_count'}, inplace=True)
ans.sort_values('user_id', inplace=True)
return ans
Complexity
- ⏰ Time complexity:
O(n)where n is the number of rows in the Followers table, since each row is processed once for grouping and counting. - 🧺 Space complexity:
O(m)where m is the number of unique user_ids, as the result stores one row per user.