2012-04-05 6 views
4

1人のユーザーが購入したアイテムのみ合計賞金と合計賞金を合計します。私は大きなテーブルを持っているので、すべての投票者をすべてのアイテム、つまり特定のユーザーが購入したアイテムだけに合計したくない。MYSQL 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 

は、これらの合計は、とてもそのわずか1つの値のみの加算のユーザー12373の情報です。私はどのようにユーザー12373によって買われたitem_idsのすべての購入を取得するか分からない。

私は含める必要がある入れ子になるものがありますが、私は無知だ、ある種のサブクエリがあると確信しています。

私のデータを見たいのですが、item_id = 3,4,5はすべてユーザー= 12373で購入しています。 item_id = 1,2,6は他のユーザーが購入したものです。

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

思考?

+1

商品購入表の列に関連性のある情報を追加してください。 Purchaser_Accountテーブルがありますか?該当するフィールドのみがあれば、purcharser_account_id? purchaser_account_id列の関係ですか? –

+0

こんにちは、これらの列のどれもキーではありません。 purchase_idが主キーです。テーブルの名前は 'items_purchased'です。私は、SQL文の 'SELECT'部分のすべての列が必要なすべての列をカバーしているため、この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 
+0

こんにちはMosty、私ははっきりしていない場合は申し訳ありませんが、各項目はリストのユーザーに表示されるため、item_idが必要です。それらは集計されていません。私は、ユーザー12373(item_id = 3、item_id = 4など)を含むすべてのユーザーが作成した「はい/いいえ」投票を集計したいと思います。 –

+1

あなたはポイントを持っています。 –

+0

@MostyMostacho item_idによるグループ化は、すべてのアイテムが1つの行にあることを意味するものではありません。 SAME item_idの項目のみがグループ化されます。 – binarious

関連する問題