符合选择标准的行的列值总和是否不仅可以返回每个单独的行,而且可以返回符合相同条件的多个组?
例如,考虑:
id order_id quantity
1 1 1
2 1 3
3 1 5
4 2 2
5 2 4
MySQL SELECT查询可以返回以下结果:
id order_id quantity order_sum
1 1 1 9
2 1 3 9
3 1 5 9
4 2 2 6
5 2 4 6
编辑: 后续问题:假设结果是从具有多个条件的查询生成的,那么在最终查询中如何处理这些条件?
答案 0 :(得分:5)
您可以在“from”子句中使用子查询:
select t.*, tsum.sumquantity
from t join
(select t.orderid, sum(quantity) as sumquantity
from t
group by t.order_id
) tsum
on t.orderid = tsum.orderid
将它放在“from”子句中的优点是可以有多个变量。例如,您可以添加订单数量,最大数量,出现1个数量的次数,等等。
答案 1 :(得分:1)
您可以使用子查询:
select *
, (
select sum(quantity)
from YourTable yt2
where yt2.order_id = yt1.order_id
) as order_sum
from YourTable yt1
答案 2 :(得分:0)
您需要有一个子查询,为每个SUM
计算quantity
的{{1}}
Order_ID