ホームページ > データベース > mysql チュートリアル > MySQL エラー 1111: グループ関数の無効な使用が発生するのはなぜですか?

MySQL エラー 1111: グループ関数の無効な使用が発生するのはなぜですか?

Linda Hamilton
リリース: 2024-12-31 10:42:16
オリジナル
503 人が閲覧しました

Why Am I Getting MySQL Error 1111: Invalid Use of Group Function?

難解なエラー 1111: グループ関数の無効な使用

この問題は、AVG などの集計関数を使用しようとすると発生します。 WHERE 句を使用すると、謎のエラー 1111 が発生します(HY000).

問題の核心を理解する

SQL では、集計関数が WHERE 句に含まれるサブクエリ内にカプセル化されていない限り、WHERE 句に常駐できないと規定されています。 HAVING 句または選択リスト。さらに、集計操作の対象となる列は、外部コンテキストから参照する必要があります。

WHERE 句によるエラーの解決

このエラーを修正する 1 つの方法は、次の方法を使用することです。以下に例を示すように、WHERE 句内のサブクエリ:

select *
from staff
where salary > (select avg(salary) from staff)
ログイン後にコピー

この例では、平均給与はサブクエリを使用して計算され、各個人の給与と比較されます。

HAVING 句によるエラーの解決

あるいは、HA​​VING 句を利用して確立することもできます。ここに示すように、グループまたは集合体の検索条件:

select deptid,COUNT(*) as TotalCount
from staff
group by deptid
having count(*) > 2
ログイン後にコピー

HAVING句は、3 つ以上のメンバーを持つグループのみが結果として返されることを指定します。

HAVING 句に関する追加の解説

HAVING 句が通常使用されることに注意してください。 GROUP BY 句と組み合わせて使用​​します。ただし、GROUP BY が存在しない場合、HAVING は WHERE 句と同様に動作します。

以上がMySQL エラー 1111: グループ関数の無効な使用が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート