假设我有以下数据。我正在通过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
感谢您的帮助!
答案 0 :(得分: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
答案 1 :(得分: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