从包含零的行获取最大值,为负数

时间:2011-04-11 07:31:41

标签: mysql max

我有一个查询计算我在查询中使用了union的平均值,以便获取我最终使用max函数的数据。

因为union返回的结果如下: -

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

所以当我做max时它返回0而不是-1

我的查询是这样的: -

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

我得到这样的结果集: -

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

任何人都可以告诉我如何在查询中最大可以从0到负值。

2 个答案:

答案 0 :(得分:1)

如果您真的想使用MAX()执行此操作(尽管我认为您应该更多地考虑整个查询),请尝试用NULL替换零(显然“不计算”) 。 MAX()会忽略NULL并计算其他元素的最大值。

答案 1 :(得分: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是聚合函数。