одним SQL запросом получить таблицу всех пользователей, которая упорядочена по количеству приведённых этими пользователями рефералов и выведено количество этих рефералов?
Допустим есть таблица
user_id | ref_id
--------+--------------
1111 | NULL
2222 | 3333
3333 | NULL
4444 | 3333
2222 | 1111
После операции мне должно вывести так:
user_id | friends_count
--------+--------------
3333 | 2
1111 | 1
2222 | 0
4444 | 0
2222 | 0
пользователь с user_id 3333 пригласил 2 рефералов, поэтому он самый первый в списке, и так по убывающей
А в чём трудность? Или Вам рекурсивно нужно (т.е. всё "дерево" пригашений, когда 1-ый пригласил 2-ого, а 2-ой пригласил 3-го, первому засчитать двоих)?
Обсуждают сегодня