MySQL - 选择最大总和

时间:2013-09-04 15:13:29

标签: mysql

我有一个MySQL表格如下。

**AuthorID**, **PublicationName**, ReferenceCount, CitationCount

AuthorID和PublicationName充当主键。我需要为所有作者找到ReferenceCount和CitationCount的最大总和。例如,数据如下。

1 AAA 2 5
1 BBB 1 3
1 CCC 2 4
2 AAA 1 4

在这种情况下,我需要输出为

1 AAA 7
2 AAA 5

我尝试了以下查询。

SELECT AuthorID, PublicationName, Max(Sum(ReferenceCount + CitationCount)) 
from Author 
Group by AuthorID, PublicationName 

如果我按AuthorID使用max(sum(ReferenceCount + CitationCount))组,则发布名称我收到错误为“组函数使用无效”。我相信我应该在查询中包含拥有子句。但我不确定如何做同样的事情。

2 个答案:

答案 0 :(得分:2)

如果我理解正确的问题,那么您希望发布引用次数最多的所有记录。该出版物及其引用次数由下式给出:

SELECT PublicationName, Sum(ReferenceCount + CitationCount)
from Author
Group by PublicationName
order by Sum(ReferenceCount + CitationCount) desc
limit 1;

order bylimit 1为您提供最高价值。

如果您希望发布的所有记录具有最大总和:

select a.*
from Author a join
     (SELECT PublicationName, Sum(ReferenceCount + CitationCount)
      from Author
      Group by PublicationName 
      order by Sum(ReferenceCount + CitationCount) desc
      limit 1
     ) asum
     on a.PublicationName = asum.PublicationName

答案 1 :(得分:0)

试试这个:

SELECT AuthorID, PublicationName, Max(ReferenceCount+CitationCount) 
FROM Author 
GROUP BY AuthorID

查询的问题在于SUM()汇总了许多行的列值。它不能用于按您想要的方式对列进行求和。为此,通常使用加号(+)。