ホームページ > データベース > mysql チュートリアル > MySQL の「グループ関数の無効な使用」エラーを修正する方法?

MySQL の「グループ関数の無効な使用」エラーを修正する方法?

Linda Hamilton
リリース: 2025-01-11 22:32:42
オリジナル
783 人が閲覧しました

How to Fix MySQL's

MySQL の「無効なグループ化関数の使用法」エラーを解決する

MySQL で「無効なグループ化関数の使用」エラー メッセージが表示された場合、WHERE 句と HAVING 句の違いを理解することが重要です。

質問:

クエリは、少なくとも 2 つのサプライヤーから提供された部品 ID (pid) を取得します。ただし、次のエラーが表示されます:

<code>1111 - Invalid use of group function</code>
ログイン後にコピー

理由:

このエラーは、サブクエリでの WHERE 句の誤った使用が原因で発生します。行をグループ化して集計する前に、WHERE 句を使用して行をフィルタリングしようとしていますが、これは予期しない動作です。

解決策:

解決策は、WHERE 句を HAVING 句に置き換えることです。 HAVING は、MySQL が行をグループ化し、集計を計算した後に実行され、これらの集計に基づいて結果をフィルタリングできるようになります。

サブクエリを書き換えます:

サブクエリの WHERE 句を HAVING 句に置き換えます:

<code>(                  -- pid属于以下集合:
SELECT c2.pid                  -- pids集合
FROM Catalog AS c2             -- 来自catalog表
WHERE c2.pid = c1.pid
HAVING COUNT(c2.sid) >= 2)</code>
ログイン後にコピー

手順:

この変更されたサブクエリは、pid でグループ化し、各 pid に関連付けられた個別のサプライヤー ID (sid) を計算した後、行を正しくフィルター処理します。 HAVING 句を使用すると、カウントが少なくとも 2 の行のみが選択されるようになります。

HAVING 句を適切に使用すると、「グループ化関数の使用法が無効です」エラーを解決し、必要な結果を得ることができます。

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

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