今回はSQLにおけるROUND関数を紹介する。
ROUND関数とは?
ROUND関数は対象カラムの数値を四捨五入してくれる関数だ。
例えば、下記のsampleテーブルにおけるvalueカラム(データ型はFLOAT型)には小数点以下の数値が表示されている。
これをROUND関数を使用して小数点第一位と小数点第二位で四捨五入した場合のクエリとその実行結果が下記だ。
1 2 3 4 5 6 7 8 | SELECT ID ,value ,ROUND(value) as round ,ROUND(value,0) as round_0 ,ROUND(value,1) as round_1 FROM 'sample_table'; |
valueカラムの各値がそれぞれ下記のように四捨五入されていることがお分かりいただけると思う。
- round カラム:小数点第一位で四捨五入
- round_0 カラム:小数点第一位で四捨五入
- round_1 カラム :小数点第二位で四捨五入
上記のようにROUND関数は対象カラムの数値を四捨五入してくれる関数だ。
値を四捨五入するので、ROUND関数が対象とできるカラムは数値型である必要がある。
いくら数値のように見えても、文字列型のカラムに使うとエラーになる。
ROUND関数の使い方
ROUND関数の使い方は下記の通りで、対象のカラムと有効桁数(四捨五入の結果を反映する桁)を指定すればOKだ。
有効桁数の指定は省略可能だ。
その場合は有効桁数=0を指定した場合と同じなので、小数点第一位を四捨五入する。
そのため、下記は同じ意味となる。
具体例を見てみよう。
先ほどのsampleテーブルのvalueカラムの値を小数点第二位で四捨五入したい場合のROUND関数の指定例は下記の通りだ。
ROUND関数の有効桁数=1を指定しているので、「小数点第一位を有効桁数とする」という指定になる。
そのため、小数点第二位の値が四捨五入されて、その結果が小数点第一位に反映される。
指定した桁が四捨五入されるわけではないには注意したい。
整数を四捨五入したい場合
整数を四捨五入したい場合は、有効桁数の指定に ー(マイナス)を指定すればOKだ。
下記は有効桁数=-1 を指定している例だ。
上記例の場合は -1 を指定しているので、1の位が四捨五入されている。
整数を四捨五入することはあまり無いかもしれないが、ROUND関数はこのように四捨五入する桁を自由に調整することができるのだ。
まとめ
今回は値を四捨五入してくれるROUND関数について紹介した。
有効桁数の指定を省略する場合は、小数点第一位を四捨五入するということを覚えておこう。
ROUND関数は値を四捨五入するが、似ている関数としては下記がある。
- FLOOR関数:値の切り捨て
- CEILING関数:値の切り上げ
上記関数もROUND関数と併せて覚えておくとデータの種類によって使い分けが柔軟に行えるはずだ。