我有一个查询计算我在查询中使用了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到负值。
答案 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是聚合函数。