2012-03-26 111 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