SQLでは、もちろん、計算もすることもできます。

ExcelのようなSUM関数、AVEREGE関数も用意されています。

今回は、計算結果を条件として、データを抽出してみましょう。

スポンサーリンク

SQL文で、カンタンな計算をしてみよう

 

こんにちは。伊川(@naonaoke)です。

 

2回の渡り、SQL文の紹介をしてきました。

今回は、SQLでカンタンな計算をしながら、データを抽出してみます。

 

利用する関数は、カンタンな関数です。

Excelでお馴染みの関数です。

 

しかし、Excelと利用方法は少し違います。

まら、SQLでは利用できても、ACCESSで利用できない関数もあります。

 

Excelでも、ACCESSでも、SQLでも利用できる関数を紹介します。

スポンサーリンク

このブログはこんな人にお勧め

今回のテーマ
  • クエリの利用方法を勉強している人
  • SQL文を勉強している人
  • 高度なクエリを書いてみたい人

このブログを、読み終わるころには・・・・

このブログの結論
計算のコードは、Excelの関数と変わりません。
少し、書き方が変わります。
また、SQLでは利用できるが、ACCESSで利用できない関数もありますので、その際は、別の関数を利用するしかないです。

 

スポンサーリンク

SQLで、計算結果に基づいて、データ抽出する

今回、利用する関数は、上記の関数です。

SQLで、計算結果に基づいて、データ抽出する 作業手順 その1 カンタンな計算

 

salary列の合計値と平均値を求めよ

 

SELECT SUM(salary), AVG(salary) FROM MT_Empoyee;

このように記載します。

フィールドの名前が変ですね。

Expr1001は、フィールドに名前が、設定されていない場合や、同じ名前のフィールドをクエリで選択したときに、

ACCESSの判断で、名前がExpr1001と名前が尽きます。

 

デザインビューで確認します。

SELECT Sum(salary) AS 合計, Avg(salary) AS 平均

FROM MT_Empoyee;

 

このように記載します。

salary列の最大値と最小値を求めよ

 

SELECT MAX(salary) AS 最大, MIN(salary) AS 最小

FROM MT_Empoyee;

salary列がNULLであるデータを除いたレコード件数を求めよ

 

SELECT COUNT(salary) AS NULL含まない

FROM MT_Empoyee;

列がNULLであるデータを含めたレコード件数を求めよ

SELECT Count(*) AS NULLを含む

FROM MT_Empoyee;

Excelよりも面倒ですが、難しくないですね。

 

伊川の小話

 

この集計関数に関しては、数字のみの計算です。

例えば、誕生日の平均を取得しても意味がありません。

だから、誕生日、つまり、時刻/日時型には、別の関数が用意されています。

 

また、今回、四捨五入も紹介しようと思ったのですが、ROUND関数は、ACCESSでは少し違います。

Excelと、SQLでは、同じなのですが、四捨五入は、機会があればどこかで紹介します。

 

SQLで、計算結果に基づいて、データ抽出する 作業手順 その2 給料が平均以上の社員を抽出

別に、おかしいところはありません。

しかし、エラーになります。

SQLで、計算結果に基づいて、データ抽出する 作業手順 その3 サブクエリを使う

 

エラーの原因は、下記の通りです。

なので、WHERE句の中に、給料の平均以上の条件を書かなければなりません。

ちなみに、salaryの平均は、下記のように書きます。

 

この条件を下記のようにします。

つまり、給料の平均を、WHERE句の中に仕込みます。

メインとなるクエリの中に、再度、クエリを入れるから、サブクエリなんですね。

これを、デザインビューで確認します。

 

 

抽出条件の中に、クエリを記載します。

ここがポイント

 

ここがポイント
Function8.png
サブクエリは、さすがに、SQL文を書かないと実行できません。
もっとも、この程度のクエリなら、デザインビューから作成できます。
しかし、キャバクラの本指名の数を、数えて、売上を決めるなんて言うのは、
サブクエリを、直書きしないとできないですね。
動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

 

今回は、カンタンな計算と、サブクエリについて紹介しました。

最近は、めっきり、SQLにハマっています。

これを極めれば、VBAよりお金になります。

今回も最後まで読んでいただきありがとうございました。

今回のサンプルファイルは、No299です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

 

スポンサーリンク

Twitterでフォローしよう

おすすめの記事