概要:このチュートリアルでは、SQL ROUND関数を使用して数値を特定の精度に丸める方法を学習します。
SQL ROUND関数の概要
ROUND
関数は、数値を特定の長さまたは精度に丸める数学関数です。 以下の例は、ROUND
関数の構文を示しています。
ROUND(numeric_expression,precision);
Code language: SQL (Structured Query Language) (sql)
ROUND
関数は、2つの引数を受け取ります。
- numeric_expression は、数値に評価される数値式です。
- precision は、正または負の整数のみを取ることができます。
次のステートメントは、数値を小数点以下1桁に丸めます。
SELECT ROUND(100.19,1);
Code language: SQL (Structured Query Language) (sql)
round
-------
100.2
(1 row)
Code language: SQL (Structured Query Language) (sql)
精度は1なので、ROUND
関数は数値を最も近い10分の1に丸めます。次の例を参照してください。
SELECT ROUND(100.14,1);
Code language: SQL (Structured Query Language) (sql)
round
-------
100.1
(1 row)
Code language: SQL (Structured Query Language) (sql)
精度が負の整数の場合は、ROUND
関数は小数点の左側にある数値を丸めます。例えば
SELECT ROUND(109.14,-1);
Code language: SQL (Structured Query Language) (sql)
round
-------
110
(1 row)
Code language: SQL (Structured Query Language) (sql)
上記のステートメントでは、ROUND
関数は小数点の左側の数値の最後の桁を丸めました。さらに、小数点の右側の数値はゼロになりました。
Microsoft SQL Server、IBM DB2、Sybase ASEなどのデータベースシステムでは、数値の小数点の後にゼロ(.00)が表示されるのに対し、Oracleデータベース、PostgreSQL、MySQLなどでは表示されません。
Oracle、PostgreSQL、MySQLには、1つの引数を受け取るROUND
関数のバージョンがあります。1つの引数を渡すと、ROUND
関数は数値を最も近い整数に丸めます。例えば、次のステートメントは、最も近い整数である110を返します。
SELECT ROUND(109.59);
Code language: SQL (Structured Query Language) (sql)
round
-------
110
(1 row)
Code language: SQL (Structured Query Language) (sql)
SQL ROUND関数の例
サンプルデータベースにある次のemployees
テーブルとdepartments
テーブルを参照してください。

次のステートメントは、ROUND
関数を使用して、各部門の従業員の平均給与を最も近い整数に丸めます。
SELECT
department_name,
ROUND(AVG(salary), 0) average_salary
FROM
employees e
INNER JOIN
departments d ON d.department_id = e.department_id
GROUP BY e.department_id
ORDER BY department_name;
Code language: SQL (Structured Query Language) (sql)

このチュートリアルでは、ROUND
関数を使用して数値を特定の精度に丸める方法を学習しました。
このチュートリアルは役に立ちましたか?