我试图从另一个查询结果中选择MAX,该结果只返回一个带有值的列。
这个查询为我提供了我想要只选择最大值的所有值的列:
SELECT perfy as perf
FROM aasv_chart5
UNION
SELECT perfcumu as perf
FROM aasv_chart5
返回
PERF
-2.9
1.4
12.5
14
现在我想从中选择最大值。我试过像..
select MAX(SELECT perfy as perf
FROM aasv_chart5
UNION
SELECT perfcumu as perf
FROM aasv_chart5) FROM aasv_chart5
答案 0 :(得分:2)
将您的第一个查询用作子查询,但在字段上使用MAX,而不是在查询上使用
SELECT MAX(perf) from
(SELECT perfy as perf
FROM aasv_chart5
UNION
SELECT perfcumu as perf
FROM aasv_chart5) s
取决于您的dbms,您也可以
select max(greatest(perfy, perdcumu))
from aasv_chart5
或greatest
不在那里
select max(case when perfy > perdcumu then perfy else perdcumu end)
from aasv_chart5
修改强>
从你的评论,你可以做到
select id,
(select max(greatest(perfy, perdcumu))
from aasv_chart5) as maxVal
from aasv_chart5
或
select id, s.maxval
from aasv_chart5
cross join (select max(greatest(perfy, perdcumu)) as maxval
from aasv_chart5) s
答案 1 :(得分:1)
SELECT max(abc.perf)
FROM
(SELECT perfy as perf
FROM aasv_chart5
UNION
SELECT perfcumu as perf
FROM aasv_chart5) as abc