ホームページ >データベース >mysql チュートリアル >SQL で集計関数を使用するときに発生する「GROUP BY 式ではありません」エラーを回避するにはどうすればよいですか?

SQL で集計関数を使用するときに発生する「GROUP BY 式ではありません」エラーを回避するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-13 06:15:43449ブラウズ

How Can I Avoid

SQL の GROUP BY 句と集計関数を理解する

SQL の GROUP BY 句を使用すると、グループ化後にどの属性にアクセスできるかについて混乱が生じることがよくあります。明確にしましょう:

GROUP BY および非集計列

グループ化後に非集計列にアクセスしようとすると、「GROUP BY 式ではありません」エラーが発生します。これは、各グループに複数の行が含まれる可能性があり、非集計列の値がそれらの行間で異なるためです。

集計関数: より詳しく見る

逆に、集計関数 (SUMMAXAVG など) は、GROUP BY を適用した後でも、各グループ内の基になる列にアクセスできます。 グループ全体の単一の集計値を計算します。

例:

次のクエリについて考えてみましょう:

<code class="language-sql">SELECT *
FROM order_details
GROUP BY order_no;</code>

このクエリは、order_price などの非集計列で集計関数を使用せずにすべての列を選択しようとするため、失敗します。

ただし、これは有効なクエリです:

<code class="language-sql">SELECT SUM(order_price)
FROM order_details
GROUP BY order_no;</code>

ここで、SUM は各グループを処理し、order_price の値を合計して、各 order_no の合計価格を算出します。

GROUP BY

に非集計列を含める

グループ化後に非集計列にアクセスするには、それらを GROUP BY 句に含めます。

<code class="language-sql">SELECT order_no, SUM(order_price)
FROM order_details
GROUP BY order_no;</code>

これにより、各 order_no とその合計 order_price が正しく取得されます。

以上がSQL で集計関数を使用するときに発生する「GROUP BY 式ではありません」エラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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