SQLの算術関数とは?便利な関数とその使い方について解説

 2022.06.03  株式会社システムインテグレータ

前回#01は文字列関数についていくつか説明しました。今回は初心者訓練所#02として、文字列関数と同様によく利用される便利な算術関数についていくつかピックアップして説明していきます。

算術関数とは? 

算術関数とは、数値型の項目に対して編集を行う関数になります。
数値項目の値を四捨五入したり、剰余(除算した結果の余り)を求めたりと様々な関数が存在します。もちろん、文字列関数と同様に複数の関数を組合せて使用することもできます。

便利な算術関数の紹介

今回は、沢山ある算術関数から、便利な3つの関数を紹介していきます。

ROUND関数

ROUND関数は数値の四捨五入を行います。
指定した数値Xを有効桁数で四捨五入します。有効桁数は小数点の桁数で省略することが可能です。省略した場合は、0で実行されます。

ROUND ( 数値X )
ROUND ( 数値X , 有効桁数 )

MOD関数

MOD関数は、剰余(割り算の余り)を求めます。
数値Xに割られる数値を数値Yに割る数値を指定します。

MOD ( 数値X , 有効桁数 )

ABS関数

ABS関数は、数値の絶対値を取得するときに使用します。
引数に指定した数値Xの絶対値を取得します。

ABS ( 数値X )

算術関数の使用例

それでは、実際にそれぞれの関数について確認していきましょう。
インストールが簡単なデータベース、SQLiteを使用して説明していきます。

ROUND関数

確認用のテーブルを作成してデータを挿入してみましょう。

create table round_test ( id integer ,  val_x real) ;
insert into round_test values ( 1 , 10.423 );
insert into round_test values ( 2 , 15.5552 );
insert into round_test values ( 3 , 13.1555 );
insert into round_test values ( 4 , 18.344 );
insert into round_test values ( 5 , 19.789 );

sql-02-01

select文で登録内容を確認してみましょう。

select * from round_test;

sql-02-02insert文で作成した5件のデータを確認できます。

それでは、有効桁数を指定しないでROUND関数を実行してみましょう。

select id , val_x , ROUND ( val_x ) from round_test;

sql-02-03

それぞれ、小数点の位置で四捨五入された値が返されます。

次に、有効桁数を指定して実行してみましょう。
有効桁数に1,および2を指定した場合は以下となります。

select id , val_x , ROUND ( val_x , 1 ) , ROUND ( val_x , 2 ) from round_test;

sql-02-04
それぞれ、指定した位置で四捨五入されていることが確認できます。

ROUND関数の説明は以上になります。 

MOD関数

MOD関数は剰余を求める関数ですが、パラメータが以下の場合は剰余以外の結果が返されます。
・数値Y (割る数値) に0を設定した場合は、NULLが返されます。
・数値X (割られる数値) 、数値Y (割る数値) のどちらか、または両方にNULLを設定した場合もNULLが返されます。

もちろん、パラメータに項目を指定することもできます。

確認用のテーブルを作成してデータを挿入してみましょう。

create table mod_test ( id intrger , val_x real , val_y real );
insert into round_test values ( 1 , 10.423 );
insert into round_test values ( 2 , 15.5552 );
insert into round_test values ( 3 , 13.1555 );
insert into round_test values ( 4 , 18.344 );
insert into round_test values ( 5 , 19.789 );

sql-02-06

select文で登録内容を確認してみましょう。

select * from mod_test;

sql-02-07
insert文で作成した5件のデータを確認できます。

それでは、項目val_xを項目val_yで割ってみましょう。

select id , val_x , val_y , MOD ( val_x , val_y ) from mod_test;

sql-02-08

id=5のデータは、val_yの値が0なので、結果はNULLが返されています。
MOD関数の説明は以上になります。

ABS関数

ABS関数は数値の絶対値を返す関数になります。パラメータには、数値やテーブル項目および、計算式を記入することができます。
また、数値に変換できない(数値以外)の項目を指定した場合は、0.0を返します。
パラメータを直接指定したパターンをいくつか確認してみましょう。

sql-02-09

項目指定の確認用に以下のテーブルを作成して、データを挿入してみましょう。

create table abs_test ( id integer , val_x text );
insert into abs_test values ( 1 , 10 );
insert into abs_test values ( 2 , -22 );
insert into abs_test values ( 3 , -15.2 );
insert into abs_test values ( 4 , 'test' );
insert into abs_test values ( 5 , NULL );

sql-02-10

select文で登録内容を確認してみましょう。

select * from abs_test;

sql-02-11

insert文で作成した5件のデータを確認できます。

作成したテーブルから、ABS関数でval_xの絶対値を取得してみましょう。

select id , val_x , ABS ( val_x ) from abs_test;

sql-02-12

id=4のデータは数値に変換できないため、0.0が返されており、
Id=5のデータはNULL値が設定されていたため、NULLが返されています。

ABS関数の説明は以上となります。

おすすめの学習コンテンツ

本記事を読み終わって、さらに学びたい方、次は問題にチャレンジしてみたい方には、以下の無料コンテンツをご用意しておりますので、ぜひ活用してみてください!

SQLiteについて
・本記事で使用したデータベース「SQLite」について解説する資料です。
 SQLiteとは?他のデータベースとの違いも解説

SQLの教科書
・一般的な解説から、実際にSQLを動かす操作イメージまで幅広く解説する資料です。
 「SQLの教科書」ビックデータ時代の必須科目

SQL無料トライアルテスト
・TOPSIC-SQLの無料トライアルテストをご受験していただけます。
 TOPSIC-SQL無料トライアルテスト

SQL基礎解説YouTube
・「TOPSIC-SQL」を元にしたオンラインウェビナーです。
 SQL-BOOT CAMP #1 
 ビッグデータ時代の必須科目SQLを学ぶ「実戦で通用する武器を身につけよう!」

まとめ

本記事では、初心者訓練所第2弾としてSQL初心者の方々向けに算術関数の一部を紹介しました。本記事で使用したデータベース「SQLite」は、簡単にインストールできます。本を読んで勉強しても中々理解できなかった関数も、実際に入力してトライ&エラーを重ねる事で理解度も深まると思います。是非、「SQLite」をインストールして実際に自主練してみてください。
それでは、次の初心者訓練所でまたスキルアップを目指しましょう!

(株)システムインテグレータ 製品企画室 元鬼軍曹 久保 司

5分でわかる!TOPSIC-SQL

RELATED POST関連記事


RECENT POST「SQL‐BOOTCAMP」の最新記事


SQL‐BOOTCAMP

SQLの集計関数とは?集計関数を活用してデータ分析

SQL‐BOOTCAMP

SQLの文字列関数とは?よく利用される関数とその使い方について解説

SQLの算術関数とは?便利な関数とその使い方について解説

TOPSIC TOPへ