根据另一列获取一列的计数

ATM*_*hew 2 mysql sql

假设我有以下数据。我正在尝试通过 acct_id 计算每个 Buyer_id 的计数,其中 Buyer_id 包含 5。因此,对于 acct 51(它有 5 个实例并且包含一个包含 5 的实例),我要找到每个 Buyer_id 的计数(当然不包括 5)。此计数应遍历所有包含 buy_id 为 5 的 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
Run Code Online (Sandbox Code Playgroud)

所以在这个例子中我最终会得到如下所示的结果

buyer_id    count(*)
4           2     
5           2  
6           2
9           1 
12          1
13          1
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助!

Cha*_*had 5

这应该可以解决问题:

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
Run Code Online (Sandbox Code Playgroud)

请参阅此处的 sqlfiddle:http://sqlfiddle.com/#!2/0d3d2 /3