从Same Table中选择Group by

时间:2013-10-02 00:22:59

标签: mysql sql group-by

我有一张像这样的表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

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

2 个答案:

答案 0 :(得分:1)

您需要按用户分组并重新安装

SELECT user, refid, count(*) cnt FROM `mlm_users` group by user,redid

答案 1 :(得分: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,user和每个引用的引用数量(仅适用于至少有一个引用的引用)。