不仅可以为每个单独的行返回满足选择标准的行的列值总和,而且可以为满足相同条件的多个组返回列值的总和吗?
例如,考虑:
id order_id quantity
1 1 1
2 1 3
3 1 5
4 2 2
5 2 4
Run Code Online (Sandbox Code Playgroud)
哪些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
Run Code Online (Sandbox Code Playgroud)
编辑:后续问题:假设结果是从具有多个条件的查询中产生的,这些条件在最终查询中将如何处理?
您可以在“ 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
Run Code Online (Sandbox Code Playgroud)
将其放在“ from”子句中的优点是可以有多个变量。例如,您可以添加订单数量,最大数量,正好出现1个数量的次数等等。
您可以使用子查询:
select *
, (
select sum(quantity)
from YourTable yt2
where yt2.order_id = yt1.order_id
) as order_sum
from YourTable yt1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3142 次 |
| 最近记录: |