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

エラー: グループ関数の無効な使用 (エラー番号 1111)

何か案が?

ありがとう。

4

2 に答える 2

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 フォーラムから:: 一般 :: 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
于 2010-01-16T09:31:25.523 に答える
0

この=max(sum(value))部分では、1 つだけでなく、グループ化された 2 つの選択の結果を比較する必要があります。(合計の最大値)

話を戻しましょう: 実際に取得しようとしている情報は何ですか? テーブル内の値の合計は一意であるためです。最小値または最大値はありません (または、見方によっては、値はそれ自体の最小値と最大値です)。結果を意味のあるものにするには、そこにさらにいくつかの基準を適用する必要があります。その際、おそらくいくつかの基準で結合またはサブセレクトを行う必要があります。

于 2010-01-16T09:30:20.000 に答える