我不禁想到有一种简单的方法可以做到这一点 - 但我想确保我做对了,不要错过社区必然提供的任何简单性!我有两个表:order
和line
,分别以您期望的一对多关系对这些订单中的订单地点和项目进行建模。关系中的每条记录line
都有一个外键order
。
我想创建一个简单的报告来计算过去 6 个月内所有订单的平均重量。weight
存储在表中,表示单个项目line
的重量,需要使用数量()来计算。我的计划是先将这些行放在一起,然后计算出它们的平均值,但是虽然看起来效果很好,但我不确定如何在这里应用平均值。同样,我不确定如何获得所有这些总和的总和,因此我可以手动进行计算。qty
sum
sum
示例 SQL
SELECT
SUM(a.weight * a.qty)
FROM
line AS a
LEFT JOIN
order AS b ON a.order_id = b.id
WHERE
b.datetime > DATE_SUB(NOW(), INTERVAL 6 MONTH) AND b.status = 'P'
GROUP BY a.order_id
ORDER BY b.datetime ASC;
示例结果
20.0000
66.7400
20.7300
7.5000
7.1100
我应该如何利用这些结果来计算平均值,或者至少是总数?