Sql 使用group by显示总和的最大值

Sql 使用group by显示总和的最大值,sql,database,oracle,Sql,Database,Oracle,大家好, 我一直在努力只显示COBRANCATOTAL每年的最大值,并显示客户的名称和nif, 例如,查询结果是: 因此,结果应该是 227518698 | Rui | G | 2015 | 100 227518699 | Sara | G | 2016 | 100 227518693 | Paulo Pereira | G | 2014 | 43 227518691 | Diogo Batista | G | 2017 | 2 我似乎无法删除其他值,只是为了显示每年的最大值。您可以使用窗口

大家好,

我一直在努力只显示COBRANCATOTAL每年的最大值,并显示客户的名称和nif, 例如,查询结果是:

因此,结果应该是

227518698 | Rui | G | 2015 | 100
227518699 | Sara | G | 2016 | 100
227518693 | Paulo Pereira | G | 2014 | 43
227518691 | Diogo Batista | G | 2017 | 2

我似乎无法删除其他值,只是为了显示每年的最大值。

您可以使用窗口功能来执行此操作。这里有一种方法:

with t as (
      <your query here>
     )
select t.*
from (select t.*, row_number() over (partition by year order by cobrancatotal desc) as seqnum
      from t
     ) t
where seqnum = 1;

您还应该学习使用正确的显式连接语法。FROM子句中的逗号来自SQL的古老版本。

将查询作为文本而不是图像放入问题中。