我正在尝试提出一个查询,该查询将从第一个订单中提取商品的总数量。我了解如何取出每个项目及其第一个订单号,但我试图查看每个项目的第一个订单,以及该特定订单上该项目的总金额。该商品在同一个订单上可以有多行,这似乎让我感到困惑。这是一个示例表
项目 | 订单# | 数量 |
---|---|---|
A | 1 | 10 |
A | 1 | 15 |
A | 2 | 5 |
A | 2 | 5 |
B | 3 | 50 |
我希望结果是这样的,它只需要第一个订单( min() )并仅对该订单上该项目的行数量进行求和:
项目 | 订单# | 数量 |
---|---|---|
A | 1 | 25 |
B | 3 | 50 |
我做了这样简单的事情:
SELECT
item,
min(order),
sum(quantity)
FROM orders
GROUP BY item
它当然会向我显示最小订单,但如何才能得到总和以仅对特定第一个订单上的特定商品的数量求和?目前,当我运行时,它显示该商品的第一个订单,但它汇总了该商品所有订单的数量,我遇到了麻烦。任何帮助将不胜感激。谢谢!
使用子查询连接表,该子查询获取每个项目的第一个订单号。
SELECT t1.item, t2.order, SUM(t1.quantity) AS quantity
FROM orders AS t1
JOIN (
SELECT item, MIN(order) as order
FROM orders
GROUP BY item
) AS t2 ON t1.item = t2.item AND t1.order = t2.order
GROUP BY t1.item, t2.order