ホームページ >データベース >mysql チュートリアル >集計関数を使用しない SQL `GROUP BY` クエリがエラーを返すのはなぜですか?

集計関数を使用しない SQL `GROUP BY` クエリがエラーを返すのはなぜですか?

DDD
DDDオリジナル
2024-12-24 21:42:11750ブラウズ

Why Does My SQL `GROUP BY` Query Without Aggregate Functions Return an Error?

集計関数を使用しない GROUP BY 関数

GROUP BY 操作を理解することは、特に集計関数を除外する場合に難しい場合があります。この記事では、この概念とその影響について詳しく説明します。

この例では、集計関数を使用せずに EMP テーブルに対して GROUP BY 操作を実行しようとしましたが、その結果、いくつかのエラーが発生しました。 「GROUP BY 式ではありません」というエラー メッセージは、GROUP BY 句で指定された列が SELECT ステートメントで選択された列と一致する必要があることを示しています。

なぜこれが必要なのかを理解するには、その方法を理解することが重要です。 GROUP BY は、複数の行を 1 つの行に変換します。行を結合する場合、さまざまな値を持つ列を処理するためのガイダンスが必要です。したがって、SELECT ステートメントに含めるすべての列は、次のいずれかを行う必要があります。

  • GROUP BY 句に含める
  • 集計関数で使用する

たとえば、次の表を考えてみましょう:

Name | OrderNumber
------------------
John | 1
John | 2

Name のみに対して GROUP BY を実行すると、結果には、OrderNumber を選択するためのルールが必要です。オプションは次のとおりです:

  • GROUP BY 句に OrderNumber を含めます: これにより 2 つの行が生成されます。 1

      ジョン | 2
  • 集計関数を使用します:
  • MAX(OrderNumber): 結果: John | 2

      SUM(OrderNumber): 結果: John | 3
    SELECT 文と GROUP BY 文の列を一致させることにより、Oracle は一貫したデータ操作を保証し、あいまいさを回避します。

以上が集計関数を使用しない SQL `GROUP BY` クエリがエラーを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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