ふりかえり

本記事は、SQLの基本、実務使用例編になります。
SQLの基礎に関しましては、
【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

本編に入ります!
関数の基本構文

まずは、基本構文から見ていきましょう!
select avg(列名) from テーブル名;

select,avg,fromね!

はい、そうです!
AVG 関数は、指定した列の数値または日付データの平均値を計算するためのSQL関数です。
列名: 平均を求める列(数値型または日付型)
テーブル名: データが格納されているテーブル
実務レベルの使用例を見ていこう!

実際に、SQLを使用してデータを確認していきましょう。
SQLに関しては以下を使用して解説していきます。
create table文、select文、insert文、update文、delete文、
drop table文、につきましては、過去にアップロードした
【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

目次の、「ふりかえり」のところにそれぞれの記事のリンクが
貼ってあるよ!
または、サイドバーのカテゴリーにSQLがあるから、そちらからでも
参照できます!
[事前準備]今回、実行するSQLの一覧
-- 申請管理情報テーブルの作成
create table 申請管理情報 (
STAFF_NO varchar2(10) not null, -- 職員番号 (Staff Number)
APPLI_NO varchar2(10) not null, -- 申請番号 (Application Number)
AGE varchar2(3), -- 年齢 (Age)
COMMUTING varchar2(2), -- 通勤時間(Commuting)
MONEY varchar2(5), -- 金額(Money)
constraint PK_申請管理情報 primary key (STAFF_NO, APPLI_NO)
);
insert into 申請管理情報 (STAFF_NO, APPLI_NO, AGE, COMMUTING, MONEY)
values ('1001', 'A001', '20','1','500');
insert into 申請管理情報 (STAFF_NO, APPLI_NO, AGE, COMMUTING, MONEY)
values ('1002', 'A002', '30','2','1000');
insert into 申請管理情報 (STAFF_NO, APPLI_NO, AGE, COMMUTING, MONEY)
values ('1003', 'A003', '40','3','1500');
AGE(年齢)の平均を求める
select avg(to_number(AGE)) as 平均年齢
from 申請管理情報;

avg(AGE) ではなく、avg(to_number(AGE)) を使用しているのは、AGE カラムが varchar2 型であるためです。
to_number(AGE) によって文字列を数値に変換し、avg 関数で平均を計算できます。
as 平均年齢 とすることで、出力結果のカラム名が 平均年齢 になります。
MONEY(金額)の平均を求める
select avg(to_number(MONEY)) as 平均金額
from 申請管理情報;

MONEY も varchar2 型のため、to_number(MONEY) で数値型に変換してから avg 関数を適用します。
MONEY の値 500, 1000, 1500 の平均を計算します。
COMMUTING(通勤時間)の平均を求める
select avg(to_number(COMMUTING)) as 平均通勤時間
from 申請管理情報;

COMMUTING も varchar2 型なので、数値に変換してから avg を適用します。
COMMUTING の値 1, 2, 3 の平均を計算します。
COMMUTING(通勤時間)ごとの MONEY(金額)の平均を求める
select COMMUTING, avg(to_number(MONEY)) as 平均金額
from 申請管理情報
group by COMMUTING
order by COMMUTING;

group by COMMUTING により、同じ COMMUTING 値ごとの MONEY の平均を求めます。
order by COMMUTING を加えることで、通勤時間順に並べています。
まとめ
| クエリ内容 | SQLのポイント |
|---|
| 年齢の平均 | avg(to_number(AGE)) |
| 金額の平均 | avg(to_number(MONEY)) |
| 通勤時間の平均 | avg(to_number(COMMUTING)) |
| STAFF_NOごとの金額の平均 | group by STAFF_NO |
| 通勤時間ごとの金額の平均 | group by COMMUTING |
| 小数点以下の桁数を調整 | round(avg(to_number(MONEY)), 1) |

avg関数について解説しました。
AVG はデータ分析の場面でとても役立ちますので、ぜひ実際に試してみてください!
次回もお楽しみに!










コメント