各行に式を適用し、最後にすべての結果を合計する必要がある行を合計する必要があります。私は合計の列に、前の式を具体化する必要はなく、列の名前を使用する必要があります。次のコードのようなものです(total_1、total_2、およびtotal_3は認識されないため機能しません)sqlの行と列の合計
SELECT
t.id,
t.dpt,
sum(t1.coefficient * t1.value) AS total_1,
sum(t2.coefficient * t2.value) AS total_2,
sum(t3.coefficient * t3.value) AS total_3,
(total_1 + total_2 + total_3) AS total -- Not recognized
FROM my table t
JOIN table1 t1 ON...
JOIN table2 t2 ON...
JOIN table3 t3 ON...
group by t.id, t.dpt
私はthefollowingような何かを行うことができます知っているが、それは和の定義で、いくつかの冗長性をemplies。
SELECT
t.id,
t.dpt,
sum(t1.coefficient * t1.value) AS total_1,
sum(t2.coefficient * t2.value) AS total_2,
sum(t3.coefficient * t3.value) AS total_3,
sum(t1.coefficient * t1.value + t2.coefficient * t2.value + t3.coefficient * t3.value) AS total
FROM my table t
JOIN table1 t1 ON...
JOIN table2 t2 ON...
JOIN table3 t3 ON...
group by t.id, t.dpt
列の合計を列の再定義を避けるために有効なクエリはありますか?私が考える
おかげ
私はそれも持っていましたが、2 SELECTを行うのがそれほど遅くないでしょうか?できるだけ早くselectを実行する必要があります。エラーを避けるために式を交換するのを避けたいのですが、性能を失うことなく – Javi
@ Javiを編集してください。 –
@MichałPowagaしたがって、2つの選択はより速くなります:) – Javi