我想仅对单个用户购买的商品进行总上下投票。我有一张大桌子所以我不想总结每个人为每个项目所做的所有投票,只是特定用户购买的项目。
到目前为止,这是我的查询:
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
想法?
答案 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