MYSQL将所有用户对单个用户购买的商品的总投票和投票总和相加

时间:2012-04-05 02:47:54

标签: mysql select group-by

我想仅对单个用户购买的商品进行总上下投票。我有一张大桌子所以我不想总结每个人为每个项目所做的所有投票,只是特定用户购买的项目。

到目前为止,这是我的查询:

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的信息,所以它只是一个值。我不确定如何购买所有由用户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

想法?

1 个答案:

答案 0 :(得分: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