0

假设我有以下数据。我正在尝试通过 acct_id 计算每个buyer_id 的计数,其中buyer_id 包含5。因此,对于具有五个实​​例且包含一个5 实例的acct 51,我要找到每个buyer_id 的计数(当然不包括5)。这个计数应该通过所有包含 5 个buyer_id 的acct_id,并提供所有其他buyer_id 的计数。

acct_id        buyer_id         message
51              5            success   
51              13           fail   
51              4            success
51              6            success
51              9            fail
53              6            fail   
53              12           fail   
53              4            success
57              6            fail   
57              12           fail   
57              4            success
57              5            success

所以在这个例子中,我最终会得到类似下面的东西

buyer_id    count(*)
4           2     
5           2  
6           2
9           1 
12          1
13          1

谢谢你的帮助!

4

2 回答 2

4

这应该可以解决问题:

select buyer_id, count(distinct acct_id)
from Table1 a
where exists (
  select * from Table1
  where acct_id = a.acct_id 
    and buyer_id =5)
group by buyer_id

在此处查看 sqlfiddle:http ://sqlfiddle.com/#!2/0d3d2/3

于 2012-05-21T20:27:39.653 回答
1

我想这就是你想要的。

Select buyer_id, count(*)
From table
Where acct_id in (Select acct_id From table Where buyer_id = 5) --insert buyer_id param here
Group By buyer_id
于 2012-05-21T20:29:40.823 回答