[英]I want to find highest row from multiple columns in hive
a b c
1 1 1
2 2 2
3 3 3
4 4 4
5 5 1
这里有 3 列,我必须在这些列中找到最高的行
结果将是 - 4 4 4
好的,所以我已经通过了这里的智囊团,我们发现这是一个很好的谜题,试图弄清楚它的含义。 另一个建议是 551 与 155 相同,因此 444 高于 155。
我们可以用“最小数、中间数、最大数”将3、1、2变成123。 中间数是所有数的总和减去最大的减去最小的
在这种情况下:
SELECT * FROM table
ORDER BY
LEAST(a,b,c) DESC,
a+b+c-GREATEST(a,b,c)-LEAST(a,b,c) DESC,
GREATEST(a,b,c) DESC
LIMIT 1
如果您的配置单元没有最大和最小,那么您必须使用 case when来伪造它(我建议您使用子查询)
如果“最高行”意味着最大的总和,那么它将是
SELECT * FROM table ORDER BY a+b+c DESC LIMIT 1
如果我理解正确? 不确定您想对重复项做什么? 如果有一行 3 4 5 呢?
select
a,b,c,(a+b+c)/3
from
table
where
(a+b+c)/3 >= (select (avg(a)+avg(b)+avg(c))/3 from table)
and a >= (select cast(avg(a) as int) from table)
and b >= (select cast(avg(b) as int) from table)
and c >= (select cast(avg(c) as int) from table)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.