1

我有一张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

但是,这给了我每个值的错误用户。如何为每个值获取正确的用户?

4

2 回答 2

1

您需要按用户分组并重新识别

SELECT user, refid, count(*) cnt FROM `mlm_users` group by user,redid
于 2013-10-02T00:26:21.303 回答
1

我想这就是你要找的。基本上,你在那里缺少一个连接。

select u1.id, u1.user, count(u1.id) cnt from mlm_users u1
join mlm_users u2 on u1.id = u2.refid
group by u1.id, u1.user

这将返回 id、用户和他们每个人拥有的推荐数量(仅适用于至少有一个推荐的人)。

于 2013-10-02T00:32:33.120 回答