Для начала: у каждого пользователя, по идее, должно быть поле inviter, ну или любое другое, где хранится ID пользователя, который его пригласил. Допустим:
| id | username | inviter |
|----|----------|---------|
| 1 | abc | null |
| 2 | abcd | 1 |
| 3 | abcde | 2 |
| 4 | abcdef | 1 |
Далее мы делаем выборку:
SELECT COUNT(*) FROM table_name WHERE inviter = {НОМЕР_ПОЛЬЗОВАТЕЛЯ}
Таким образом мы сможем посчитать всех рефералов пользователя {НОМЕР_ПОЛЬЗОВАТЕЛЯ} по первому углублению. По второму углублению (посчитать рефералов реферала пользователя) нужно делать, как мне кажется через доп запросы, но я не вижу в этом смысла ибо рефералы считаются только на первую глубину, на вторую глубину никогда они не считаются. То есть если у моего реферала есть 10 рефералов, то у меня реферал все равно один.