0

次のデータがあるとしましょう。私は、buyer_idに5が含まれているacct_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 に答える