2012-04-01 91 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也沒有隱式的值。那麼,計算* it的SUM *是什麼意思呢? – ruakh 2012-04-01 22:31:45

+0

@ruakh有一個複雜的計算,但這與問題無關 – 2012-04-01 22:42:29

回答

6

你可以這樣做:

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

內部,服務器只會做SUM(table_colum)計算一次,並使用結果的兩倍。

+1

官方文檔的鏈接將不勝感激:) – Epoc 2016-10-17 18:36:13

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