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

DDD
リリース: 2024-10-24 12:15:01
オリジナル
807 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!