SQL Modulo
The % operator returns the REMAINDER left over after division — useful for checking evenness, cycling through a fixed number of buckets, or spotting patterns in IDs.
What & Why
a % b returns whatever is left over after dividing a by b as many whole times as possible. A classic use: id % 2 = 0 checks whether a value is even.
See How It Works
BUSINESS QUESTION
Growth wants each user assigned to one of four deterministic analysis buckets.
| id | created_at | country | channel | plan | activated_at | churned_at |
|---|---|---|---|---|---|---|
| 101 | 2024-01-15 09:10:00+00 | US | organic | pro | 2024-01-16 14:25:00+00 | NULL |
| 102 | 2024-02-10 11:05:00+00 | CA | paid | free | NULL | 2024-03-20 10:00:00+00 |
| 103 | 2024-03-12 16:35:00+00 | GB | referral | pro | 2024-03-13 08:15:00+00 | NULL |
| 104 | 2024-04-01 13:20:00+00 | US | organic | free | 2024-04-03 12:00:00+00 | NULL |
EXAMPLE QUERY
SELECT
id AS user_id,
MOD(id, 4) AS user_bucket
FROM growth.users
ORDER BY user_id;RESULT — exact output from the displayed Queryflo rows
| user_id | user_bucket |
|---|---|
| 101 | 1 |
| 102 | 2 |
| 103 | 3 |
| 104 | 0 |
The four user IDs occupy all four modulo buckets.
Sign up free to try it on a real business scenario