4

1人のユーザーが購入したアイテムのみの賛成票と反対票の合計を合計したいと思います。私は大きなテーブルを持っているので、すべてのアイテムに対して全員が行ったすべての投票を合計するのではなく、特定のユーザーが購入したアイテムだけを合計したくありません。

これまでの私の質問は次のとおりです。

select SUM(purchaseyesno) AS tots, SUM(rating=1) AS yes, SUM(rating=0) AS no, item_id
from items_purchased
where purchaser_account_id=12373 
group by item_id

ご想像のとおり、これらの合計は合計ユーザー12373の情報にすぎないため、値は1つだけです。ユーザー12373が購入したitem_idsのすべての購入を取得する方法がわかりません。

ある種のサブクエリがあり、含める必要があるものをネストしていると確信していますが、私にはわかりません。

これが私のデータの見た目です。item_id=3,4,5はすべてuser=12373によって購入されています。item_id = 1,2,6は、他のユーザーによって購入されました。

item_id    tots    yes    no
   3        7       4      2
   4        5       1      3
   5        1       0      1

考え?

4

1 に答える 1

2
select item_id, SUM(purchaseyesno) tots, SUM(rating = 1) yes, SUM(rating = 0) no
from items_purchased
where item_id in (
    select item_id from items_purchased
    where purchaser_account_id = 12373
)
group by item_id
于 2012-04-05T02:57:05.637 に答える