繁体   English   中英

如何在SQL中获取多个列的总和的最大值?

[英]How i can get the max value of a sum of multiple columns in SQL?

我的桌子

Name  column1 column2 column3
Julio 24      25      35
Jaime 30      40      35

这是我的查询

Select a.name, max(column1+column2+column3) from table group by name

我如何获得多列总和的最大值?

与查询你

select a.name, max(column1+column2+column3) from table group by name

结果将是所有名称及其列的总和,并假设每个名称将具有一个对应的行。

如果您需要与求和最大值对应的名称,请使用

select name, column1+column2+column3 as sum
from table t
join (select max(column1+column2+column3) as maxsum from table) t1
on t.column1+column2+column3 = t1.maxsum

要获得最大金额,请使用

select max(column1+column2+column3) as maxsum from table

我将使用order by来处理此问题,并且fetch first 1 row only (在Oracle 12+中):

Select a.name,
       sum(coalesce(column1, 0) + coalesce(column2, 0) + coalesce(column3, 0)) as s
from table
group by a.name
order by sum(coalesce(column1, 0) + coalesce(column2, 0) + coalesce(column3, 0))  desc
fetch first 1 row only;

在早期版本中,使用子查询:

select t.*
from (Select a.name,
             sum(coalesce(column1, 0) + coalesce(column2, 0) + coalesce(column3, 0)) as s
      from table
      group by a.name
      order by sum(coalesce(column1, 0) + coalesce(column2, 0) + coalesce(column3, 0))  desc
     ) t
where rownum = 1;

我在SQL Server 2014中执行了此查询。希望对您有帮助

select name, max(column1+column2+column3) as MaxSum from table
group by name
having max(column1+column2+column3)= (select max(column1+column2+column3) from table)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM