MySql Sql MAX和SUM错误

时间:2010-01-16 09:23:53

标签: mysql sql aggregate-functions mysql-error-1111

select sum(value) as 'Value',max(value)
from table_name where sum(value)=max(sum(value)) group by id_name;

错误是:无效使用组功能(ErrorNr.1111)

有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:4)

你可以试试吗

SELECT Value, MXValue
FROM (
       select sum(value) as 'Value',max(value)  MXValue
       from table_name 
       group by id_name
     ) as t1
order by value desc
LIMIT 0,1

来自MySQL Forums :: General :: selecting MAX(SUM())

或者您可以尝试类似

的内容
SELECT  id_name,
        Value
FROM    (
            select id_name,sum(value) as 'Value'
            from table_name
            group by id_name
        ) t
WHERE   Value = (
                    SELECT TOP 1 SUM(Value) Mx 
                    FROM table_name
                    GROUP BY id_name 
                    ORDER BY SUM(Value) DESC
                )

甚至使用内部联接

SELECT  id_name,
        Value
FROM    (
            select id_name,sum(value) as Value
            from table_name
            group by id_name
        ) t INNER JOIN
        (
            SELECT TOP 1 SUM(Value) Mx 
            FROM table_name
            GROUP BY id_name 
            ORDER BY SUM(Value) DESC
        ) m ON Value = Mx

答案 1 :(得分:0)

=max(sum(value))部分需要比较两个分组选择的结果,而不仅仅是一个。 (总和的最大值。)

让我们退后一步:你究竟想要获得什么信息?因为表中值的总和是唯一的;没有最小值或最大值(或者,根据您的观点,有 - 值是它自己的最小值或最大值)。您需要在其中应用一些其他标准才能使结果有意义,并且这样做您可能需要使用某些条件进行连接或子选择。