我有一个简单的问题,但我找不到答案(如果该问题在stackoverflow论坛上,请给我一个链接)。 表格包含 orderid 和数量列。 如何选择orderid,quantity,total_in_order,其中total_in_order是当前orderid的数量总和 因此该表看起来相同,但附加列。 例如:
orderid - quantity - **total_in_order**
1 - 43 - **78**
1 - 24 - **78**
1 - 11 - **78**
2 - 31 - **31**
3 - 9 - **25**
3 - 16 - **25**
那么,如何修改SELECT orderid, quantity, SUM(quantity) from orders;
?
谢谢。
答案 0 :(得分:3)
使用连接到子选择。在子选择中计算每个orderid的总数。
SELECT
orders.orderid,
orders.quantity,
totals.total_in_order
FROM orders
JOIN
(
SELECT orderid, SUM(quantity) AS total_in_order
FROM orders
GROUP BY orderid
) AS totals
ON orders.orderid = totals.orderid
答案 1 :(得分:1)
第一种方法:
SELECT
O.orderid,
O.quantity,
( select sum( O2.quantity)
from orders O2
where O.orderid = O2.orderid ) as qty
from
orders O
答案 2 :(得分:0)
以下是如何使用子查询执行此操作的示例。它应该完成这项工作。
SELECT A.orderid
A.quantity
B.sum
FROM
orders A JOIN ( SELECT orderid, sum(quantity) as sum from orders group by orderid) as B on(A.orderid=B.orderid)