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