У меня есть таблица users
так:Выберите группу с помощью из той же таблицы
id user refid
1 a null
2 b 1
3 c 1
4 d 2
5 f 3
нужно выбрать пользователей, группировка по RefID и подсчета каждого RefID для каждого пользователя. Например,
id user count
1 a 2
2 b 1
3 c 1
Это то, что я пробовал:
SELECT user, refid, count(*) cnt FROM `users` group by refid
Однако, это дает мне неправильный пользователя для каждого значения. Как я могу получить правильный пользователь для каждого значения?
Я не понимаю ваш ожидаемый результат. Что пользователь «a» должен делать с refid «1», пользователь «b» связан с refid «2» и т. Д.? В пользовательской таблице пользователь «a» имеет refid «null», а пользователь «b» имеет refid «1». Почему вы ожидаете, что они будут соответствовать тому, что вы показываете в ожидаемых результатах? Можете ли вы объяснить, что именно вы пытаетесь достичь? –
@MikeBrant Я согласен с тобой. Тем не менее, я думаю, что OP означает «id» вместо «refid» в образце. Тогда это будет иметь смысл, поскольку OP будет искать количество рефералов на пользователя (для тех, у кого есть хотя бы один). –
@MostyMostacho правильно относится к id, я сделал изменения – Smith