3
選擇具有較高值的列的總和我有這個表:在達到行
a b
-----
1 3
4 3
2 1
從哪裏我想選擇任何的值是A和B之間更高的總和。
我試過以下查詢,但SUM()
不能識別我想要他總結的值。
SELECT IF(a > b, a, b) AS number, SUM(number) FROM table;
選擇具有較高值的列的總和我有這個表:在達到行
a b
-----
1 3
4 3
2 1
從哪裏我想選擇任何的值是A和B之間更高的總和。
我試過以下查詢,但SUM()
不能識別我想要他總結的值。
SELECT IF(a > b, a, b) AS number, SUM(number) FROM table;
如何case
SELECT SUM(CASE WHEN a > b THEN a ELSE b END)
FROM table
你可以嘗試這樣的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
在邏輯查詢處理中,SELECT同時發生在同一時間,這就是爲什麼它不能識別您在SELECT中指定的別名。所以只需再次使用你的條件而不是使用別名。 – sqluser 2014-10-18 09:46:13
謝謝你,'SELECT SUM(IF(a> b,a,b))',這基本上是答案的同義詞,也完美地起作用 – cedivad 2014-10-18 09:51:59