2014-10-18 19 views
3

選擇具有較高值的​​列的總和我有這個表:在達到行

a b 
----- 
1 3 
4 3 
2 1 

從哪裏我想選擇任何的值是A和B之間更高的總和。

我試過以下查詢,但SUM()不能識別我想要他總結的值。

SELECT IF(a > b, a, b) AS number, SUM(number) FROM table; 
+1

在邏輯查詢處理中,SELECT同時發生在同一時間,這就是爲什麼它不能識別您在SELECT中指定的別名。所以只需再次使用你的條件而不是使用別名。 – sqluser 2014-10-18 09:46:13

+0

謝謝你,'SELECT SUM(IF(a> b,a,b))',這基本上是答案的同義詞,也完美地起作用 – cedivad 2014-10-18 09:51:59

回答

2

如何case

SELECT SUM(CASE WHEN a > b THEN a ELSE b END) 
FROM table 
1

你可以嘗試這樣的IF():

SELECT SUM(IF(a > b, a, b)) FROM test 

或情況

SELECT SUM(CASE WHEN a > b THEN a ELSE b END) FROM test 

的Sql小提琴:http://sqlfiddle.com/#!2/204f7/1