Mysql 基于另一列获取一列的计数

Mysql 基于另一列获取一列的计数,mysql,sql,Mysql,Sql,假设我有以下数据。我正在尝试按帐户id对每个买家id进行计数,其中买家id包含5。因此,对于acct 51,它有五个实例,其中一个实例有5个,我要找到每个买家id的计数(当然不包括5个)。此计数应通过包含5个买方id的所有帐户id,并提供所有其他买方id的计数 acct_id buyer_id message 51 5 success 51 13 fail 51

假设我有以下数据。我正在尝试按帐户id对每个买家id进行计数,其中买家id包含5。因此,对于acct 51,它有五个实例,其中一个实例有5个,我要找到每个买家id的计数(当然不包括5个)。此计数应通过包含5个买方id的所有帐户id,并提供所有其他买方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

谢谢你的帮助

这应该可以做到:

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:

这应该可以做到:

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:

我想这就是您想要的

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

我想这就是你想要的

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

为什么买家id=6的计数是2?是的,我在您的示例中看到一些不一致的地方,或者我不明白您想要什么。它是2,因为我只想在账户id与买家id为5关联时计数(买家id)。换句话说,因为账户id 53中没有买家id为5,您不计算acct 53的任何买家id。为什么买家id=6的计数为2?是的,我在您的示例中看到一些不一致之处,或者我不明白您想要什么。它是2,因为我只想在acct\u id与买家id为5关联时计算(买家id)。换句话说,因为acct\u id 53中没有买家id为5,您不计算账户53的任何买家id。