【SQLレシピ】int型の除算の結果を小数点以下の桁数を指定してfloat型で出力する

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【SQLレシピ】int型の除算の結果を小数点以下の桁数を指定してfloat型で出力する

2022-6-10 |

SQLでint型の除算の結果を小数点以下の桁数を指定してfloat型で出力したい!

概要

この記事では、int型の除算の結果を小数点以下の桁数を指定してfloat型で出力する手順を掲載する。

仕様書

環境

  • SQL Server 15.0.2000

手順書

下表のようなIDと数量を記録してるテーブルTableを例にする。(なんの数量なのかとかは無視して下さい)

列名 データ型 備考
ID INTEGER ユニークな連番
Q INTEGER 数量

登録してるデータは下記のとおり。

ID Q
1 0
2 0
3 1
4 0
5 0
6 0
7 0
8 2
9 0
10 0

今回は、ID数でQの合計を割って、平均値を計算する。

SELECT
    ROUND(CONVERT(float, SUM(Q)) / COUNT(ID), 3)
FROM Table

クエリを実行すると下記のように平均値が出力される。

(列名なし)
3.333

まず、被除数か除数のどちらかをCONVERT関数でfloat型に変換しておく。
その後、ROUND関数の第2引数で小数点以下の桁数を指定して四捨五入する。

まとめ(感想文)

例のように平均値とかを計算するのに便利かもね!
C言語などのキャストを思い出すとか思い出さないとか。