5.通常の列名と集計関数を同時に指定した発生しやすいエラー1SQLを作成し実行する過程では様々なエラーが発生します。ここでは、間違えやすいエラーとその対処法について説明します。NULL’により検索でしょう。NULL;結果は以下のとおりとなります。NULL’ではなく、NULL述語を使用します。いSQLは以下のとおりとなります。NULL;結果は以下のとおりとなります。次は文字列型の列に対しての集計関数の利用です。ここも支店表を使います。支店表つぎのSQLを実行してみます。支店;結果は以下のとおりとなります。このSQLは、支店表にある支店の店舗面積の合計を求めようとしています。支店名という文字列型の列を引数に指定しているため正しく集計されませんでした。正しくは以下のようにします。支店;結果は以下のとおりとなります。3.WHERE句の中で集計関数を使用1支店表を使います。以下のSQLを実行してみます。MAX(店舗面積);結果は以下のとおりとなります。エラーとなった原因は、WHERE句の中で集計関数を使用使用したためです。正しくはサブクエリを使って以下のようにします。支店);結果は以下のとおりとなります。4.WHERE句の中で集計関数を使用2地域表を使い、以下のSQLを実行します。地域;結果は以下のとおりとなります。BY句を指定すると、検索条件が実行されてからグループ化が行われます。本来、集計関数は、グループ化が行われてから値を返すものです。このクエリでは、グループ化が行われる前に、検索条件の中で使われようとしたから正しく実行できませんでした。このような場合は、WHERE句を使わずにHAVING句を使用して条件指定を行います。正しくは以下のようにします。700;結果は以下のとおりとなります。5.通常の列名と集計関数を同時に指定した地域表に対して以下のSQLを実行します。100;結果は以下のとおりとなります。このSQLでは、社員数が100人以上の支店名と、その支店の店舗面積の合計を同時に求めようとしています。その為に、SELECT句に支店名列とSUM関数を一緒に指定してエラーとなっています。地域表には社員数>=100を満たす支店が3つあります。集計関数は結果を1つしか返しません。このように通常の列と、集計関数を同時に指定することはできません。BY句を使う場合は、通常の列と集計関数を同時に使うことができます。次のSQLをみてみます。地域;結果は以下のとおりとなります。このSQLでは、支店の店舗面積の合計を地域ごとに集計しています。BY句を使って地域毎に支店をグループ化し、12件の情報を4件のグループ化に集約したうえでグループ毎にSUM関数を実行して店舗面積の合計を求めています。このような使い方をすればSQLは正しい結果を返すことができます。コメントをキャンセルメールアドレスが公開されることはありません。要素のグループ化RECOMMENDこちらの記事も人気です。