2012-04-01 10 views
4

SQLクエリに問題があります。再利用「sum(table_column)as x」

SELECT SUM(table_colum) AS value, SUM(value * 3) AS value2 FROM table; 

これは私の全体的なクエリの短い表現です。

エラー:

Unknown column 'value' in 'field list' 

SUM()valueを再利用する方法はありますか?

+1

私はあなたが望む結果を描くことができません。 'SUM(table_column)'は既に明示的な 'GROUP BY'も暗黙的なものも持たないので、単一の値です。だから、 'SUM' *を計算するのはどういう意味ですか? – ruakh

+0

@ruakh複雑な計算がありますが、それは問題とは関係ありません。 –

答えて

6

あなたはただ行うことができます。

SELECT SUM(table_colum) AS value, SUM(SUM(table_colum) * 3) AS value2 FROM table; 

内部的には、サーバは一度だけSUM(table_colum)計算を行いますと、二回の結果を使用しています。

+1

公式ドキュメントへのリンクがあります:) – Epoc

4

私はあなたが

SELECT value, SUM(value * 3) AS value2 
    FROM (SELECT SUM(table_column) AS value 
      FROM table 
     ) AS t 
; 

を書くことができたとしかし、私は上記のコメントで述べたように、私はあなたがこれをしたいだろうかわかりません。 SUM(table_column)は単なる値なので、そのSUMはちょうど同じ値です。だから、あなたは同じ結果を書いてもらうでしょう:

SELECT value, value * 3 AS value2 
    FROM (SELECT SUM(table_column) AS value 
      FROM table 
     ) AS t 
; 

SUMなし。