【初学者必見!】SQLの基本、実務使用例を徹底解説!AVG編

サムネイル SQL

※この記事にはプロモーションが含まれています。

ふりかえり

筆者
筆者

本記事は、SQLの基本、実務使用例編になります。

SQLの基礎に関しましては、

【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
A子

本編に入ります!

関数の基本構文

筆者
筆者

まずは、基本構文から見ていきましょう!

select avg(列名) from テーブル名;

A子
A子

select,avg,fromね!

筆者
筆者

はい、そうです!

AVG 関数は、指定した列の数値または日付データの平均値を計算するためのSQL関数です。

列名: 平均を求める列(数値型または日付型)

テーブル名: データが格納されているテーブル

実務レベルの使用例を見ていこう!

筆者
筆者

実際に、SQLを使用してデータを確認していきましょう。

SQLに関しては以下を使用して解説していきます。

create table文、select文、insert文、update文、delete文、

drop table文、につきましては、過去にアップロードした

【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
A子

目次の、「ふりかえり」のところにそれぞれの記事のリンクが

貼ってあるよ!

または、サイドバーのカテゴリーに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 申請管理情報;

MONEYvarchar2 型のため、to_number(MONEY) で数値型に変換してから avg 関数を適用します。

MONEY の値 500, 1000, 1500 の平均を計算します。

COMMUTING(通勤時間)の平均を求める

select avg(to_number(COMMUTING)) as 平均通勤時間
from 申請管理情報;

COMMUTINGvarchar2 型なので、数値に変換してから 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 はデータ分析の場面でとても役立ちますので、ぜひ実際に試してみてください!

次回もお楽しみに!

この記事を書いた人
たくたく

文系出身・3年目のWeb系エンジニアです。
C#とSQLを得意としています。
同棲生活は2年目に入り、日々仲良く楽しく暮らしています。
プライベートではバイクや車で旅行に行くことが趣味です。
サンリオ好きで、中でもシナモン推しです。
お酒好きとして毎週の晩酌をリラックスタイムにしています。

たくたくをフォローする
SQLエンジニア
シェアする

コメント

タイトルとURLをコピーしました