Mysql 从包含零的行中获取最大值,负数
我有一个查询,它计算我在查询中使用的union all的平均值,以便得到最终使用max函数的数据 当union返回如下结果时:-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
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不是最好的方法,也许没有给出完整的查询。我想有一个团体参与其中。