MySql Sql MAX и SUM ошибка - PullRequest
       32

MySql Sql MAX и SUM ошибка

1 голос
/ 16 января 2010
select sum(value) as 'Value',max(value)
from table_name where sum(value)=max(sum(value)) group by id_name;

Ошибка: Неправильное использование групповой функции (ErrorNr. 1111)

Есть идеи?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 16 января 2010

Можете ли вы попробовать

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 :: selection 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
0 голосов
/ 16 января 2010

Часть =max(sum(value)) требует сравнения результатов двух сгруппированных выборок, а не только одного. (Максимум суммы.)

Давайте сделаем шаг назад: какую информацию вы на самом деле пытаетесь получить? Потому что сумма значений в таблице уникальна; здесь нет минимума или максимума (или, в зависимости от вашей точки зрения, есть значение - это собственный минимум и максимум). Вам нужно будет применить некоторые дополнительные критерии, чтобы результаты были значимыми, и при этом вам, вероятно, понадобится выполнить объединение или выборку с некоторыми критериями.

...