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

記事
IT・テクノロジー

YouTubeでも紹介しています。是非ご覧ください。

SQLでは、もちろん、計算もすることもできます。
ExcelのようなSUM関数、AVEREGE関数も用意されています。
今回は、計算結果を条件として、データを抽出してみましょう。



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

こんにちは。伊川です。
2回の渡り、SQL文の紹介をしてきました。
今回は、SQLでカンタンな計算をしながら、データを抽出してみます。
利用する関数は、カンタンな関数です。
Excelでお馴染みの関数です。
しかし、Excelと利用方法は少し違います。
まら、SQLでは利用できても、ACCESSで利用できない関数もあります。
Excelでも、ACCESSでも、SQLでも利用できる関数を紹介します。




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

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


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

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



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

1.png

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

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


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

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

2.png

このように記載します。

フィールドの名前が変ですね。
Expr1001は、フィールドに名前が、設定されていない場合や、同じ名前のフィールドをクエリで選択したときに、
ACCESSの判断で、名前がExpr1001と名前が尽きます。
デザインビューで確認します。
3.png

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

このように記載します
4.png

salary列の最大値と最小値を求めよ
SELECT MAX(salary) AS 最大, MIN(salary) AS 最小
FROM MT_Empoyee;

5.png


salary列がNULLであるデータを除いたレコード件数を求めよ
SELECT COUNT(salary) AS NULL含まない
 FROM MT_Empoyee;
6.png

列がNULLであるデータを含めたレコード件数を求めよ
SELECT Count(*) AS NULLを含む
FROM MT_Empoyee;
7.png

伊川の小話

この集計関数に関しては、数字のみの計算です。
例えば、誕生日の平均を取得しても意味がありません。
だから、誕生日、つまり、時刻/日時型には、別の関数が用意されています。
また、今回、四捨五入も紹介しようと思ったのですが、ROUND関数は、ACCESSでは少し違います。
Excelと、SQLでは、同じなのですが、四捨五入は、機会があればどこかで紹介します。



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

8.png

別に、おかしいところはありません。
しかし、エラーになります。


9.png

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

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



なので、WHERE句の中に、給料の平均以上の条件を書かなければなりません。
ちなみに、salaryの平均は、下記のように書きます。

11.png


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

12.png

つまり、給料の平均を、WHERE句の中に仕込みます。
メインとなるクエリの中に、再度、クエリを入れるから、サブクエリなんですね。
これを、デザインビューで確認します。
13.png

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




ここがポイント

サブクエリは、さすがに、SQL文を書かないと実行できません。
もっとも、この程度のクエリなら、デザインビューから作成できます。
しかし、キャバクラの本指名の数を、数えて、売上を決めるなんて言うのは、
サブクエリを、直書きしないとできないですね。


まとめ
今回は、カンタンな計算と、サブクエリについて紹介しました。
最近は、めっきり、SQLにハマっています。
これを極めれば、VBAよりお金になります。
今回も最後まで読んでいただきありがとうございました。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す