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

Mysql 从包含零的行中获取最大值,负数,mysql,max,Mysql,Max,我有一个查询,它计算我在查询中使用的union all的平均值,以便得到最终使用max函数的数据 当union返回如下结果时:- col 1 col2 1 0 2 0 3 0 4 0 0 -1 0 2 0 3 0 4 max(col1) max(col2) 1 0 2

我有一个查询,它计算我在查询中使用的union all的平均值,以便得到最终使用max函数的数据

当union返回如下结果时:-

col 1      col2
1            0
2            0
3            0
4            0
0            -1
0            2
0            3
0            4
max(col1)      max(col2)
1               0
2               2
3               3
4               4
所以当我做max时,它会返回0而不是-1

我的质询如下:

select max(col1), max(col2)
from mytbl
我得到的结果集如下:-

col 1      col2
1            0
2            0
3            0
4            0
0            -1
0            2
0            3
0            4
max(col1)      max(col2)
1               0
2               2
3               3
4               4
有谁能告诉我如何在查询中从0和负值中取最大值。

这有帮助吗

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

无法选择多行,因为MAX是聚合函数。

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

请告诉我们有关表定义和完整查询的更多信息。也许联合all不是最好的方法,也许没有给出完整的查询。我想有一个团体参与其中。