2011-04-11 144 views
0

我有一個查詢其計算我已經使用UNION ALL查詢的平均所以要得到我終於用max函數的數據。獲得最大值,負

華聯返回結果是這樣的: -

col 1  col2 
1   0 
2   0 
3   0 
4   0 
0   -1 
0   2 
0   3 
0   4 

所以當我這樣做最大返回我0而不是-1

我的查詢是這樣的: -

select max(col1), max(col2) 
from mytbl 

我得到如下結果集: -

max(col1)  max(col2) 
1    0 
2    2 
3    3 
4    4 

任何人都可以告訴我如何可以最大從0和查詢中的負值。

+1

請告訴我們更多關於表的定義和完整的查詢。也許工會並不是最好的辦法。 – Martijn 2011-04-11 07:40:48

回答

1

如果你真的想用MAX()這樣做(儘管我認爲你應該考慮更多的整個查詢),請嘗試用NULL替換零(顯然「不計數」)。 MAX()將忽略NULL並計算其他元素的最大值。

+0

感謝這解決了我的問題.......非常感謝 – 2011-04-11 08:10:11

0

這是否幫助?

select max(t1.col1), max(t2.col2) from mytbl t1 left join mytbl t2 on t2.col2 <= 0 where t1.col1 <= 0; 

您的查詢

select max(col1), max(col2) 
from mytbl 

不能選擇多個行,因爲MAX是聚集功能。

+0

可能沒有給出完整的查詢。我想有一個GROUP BY參與。 – Martijn 2011-04-11 07:48:31