ホームページ  >  記事  >  データベース  >  MySQL エラー 1111 を修正する方法: 列でグループ化する際のグループ関数の使用が無効です?

MySQL エラー 1111 を修正する方法: 列でグループ化する際のグループ関数の使用が無効です?

DDD
DDDオリジナル
2024-10-24 12:15:01900ブラウズ

How to Fix MySQL Error 1111: Invalid Use of Group Function When Grouping By a Column?

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

MySQL を使用すると、「エラー 1111 (HY000):」というエラーが発生する場合があります。列によるグループ化と同時に COUNT(*) などのグループ関数を使用してデータを集計しようとすると、「グループ関数の使用が無効です」というメッセージが表示されます。

このエラーを解決するには、クエリを実行するときに SELECT 句でグループ関数を使用しないようにしてください。 GROUP BY 操作。代わりに、サブクエリまたは ORDER BY 句を使用して、必要な最大値を取得します。

次の例を考えてみましょう。

<code class="mysql">SELECT
    name,
    MAX(COUNT(*)) AS max_count
FROM table
GROUP BY name;</code>

このクエリは、COUNT() のためエラーを返します。 SELECT 句で使用されていると同時に、名前でグループ化されています。これを修正するには、SELECT 句から COUNT() を削除し、MAX 関数内のサブクエリとして使用します。

<code class="mysql">SELECT
    MAX((SELECT COUNT(*) FROM table WHERE name = t.name)) AS max_count
FROM table t
GROUP BY name;</code>

このクエリを実行すると、各レコードの最大レコード数が取得されます。表の名前。あるいは、ORDER BY 句を使用して結果をカウントで並べ替え、最初のレコードのみをフェッチすることもできます:

<code class="mysql">SELECT
    name,
    COUNT(*) AS count
FROM table
GROUP BY name
ORDER BY count DESC
LIMIT 1;</code>

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。