2012-03-26 113 views
-6

我有这个表SQL COUNT和GROUP BY

---ID----NAME----INVITED_BY--- 
    1  A   
    2  B   1 
    3  C   1 
    4  D   2 

所有我想要的是得到的结果:

---ID----NAME------INVITES--------- 
    1  A   2 (COUNT OF INVITED_BY) 
    2  B   1 
    3  C   0 
    4  D   0 

谢谢!

+0

我想COUNT(invited_by)的结果通过用户分组... – 2012-03-26 17:04:02

+1

我不明白你怎么弄您的结果以及您向我们展示的示例数据似乎与您期望的结果无关。 – Lamak 2012-03-26 17:04:24

+0

为什么不按照问题中所述的方法使用count和group?可能会更容易做到实际的“受邀” - 计算以外的SQL虽然。 – keyser 2012-03-26 17:05:13

回答

4

你可以做自连接数邀请人数:

select yt.id 
,  yt.name 
,  count(distinct inv_by.id) as invites 
from YourTable yt 
left join  
     YourTable inv_by 
on  yt.id = inv_by.invited_by 
group by 
     yt.id 
,  yt.name 
+0

在此先感谢! :d – 2012-03-26 17:09:44