これを行う簡単な方法があると思わずにはいられませんが、コミュニティが提供するシンプルさを見逃さないように、正しく行うようにしたいと思います。私は 2 つのテーブルを持っています:order
とline
は、あなたが期待するように 1 対多の関係で、それぞれ注文の場所とそれらの注文のアイテムをモデル化します。リレーション内の各レコードには、line
への外部キーがありorder
ます。
過去 6 か月間のすべての注文の平均重量を計算する簡単なレポートを作成したいと考えています。はテーブルweight
に格納され、数量 ( ) を使用して計算する必要がある 1 つのアイテム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
平均、または少なくとも合計を計算するには、これらの結果をどのように使用すればよいですか?