SQL の GROUP BY 関数と集計関数: よくある落とし穴
SQL の GROUP BY
句はデータを要約するのに強力ですが、特に SELECT
ステートメントにどの列を含めることができるかに関して混乱を引き起こすことがよくあります。
よくある間違いとしては、集計されていない列を GROUP BY
句に含めずに選択しようとすることが挙げられます。 例:
<code class="language-sql">SELECT * FROM order_details GROUP BY order_no;</code>
このクエリは失敗します。 GROUP BY
を使用する場合、集計関数の対象とならない列 (SUM
、COUNT
、AVG
、MIN
、MAX
など) は に含まれている必要がありますリスト。GROUP BY
句にすべての非集計列を含めます。GROUP BY
<code class="language-sql">SELECT order_no, order_price FROM order_details GROUP BY order_no, order_price;</code>
<code class="language-sql">SELECT order_no, SUM(order_price) AS total_price FROM order_details GROUP BY order_no;</code>
句にすべての列をリストしていなくても、要約された情報を取得できます。 これは、エラーを回避し、グループ化されたデータから有意義な結果を得る鍵となります。 基本的な原則は、GROUP BY
リスト内のすべての列は集約されるか、SELECT
句に存在する必要があるということです。GROUP BY
以上がSQL で GROUP BY 関数と集計関数を使用する際のエラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。