SQL ROUND関数:数値を特定の精度に丸める

概要:このチュートリアルでは、SQL ROUND関数を使用して数値を特定の精度に丸める方法を学習します。

SQL ROUND関数の概要

ROUND関数は、数値を特定の長さまたは精度に丸める数学関数です。 以下の例は、ROUND関数の構文を示しています。

ROUND(numeric_expression,precision);Code language: SQL (Structured Query Language) (sql)

ROUND関数は、2つの引数を受け取ります。

  1. numeric_expression は、数値に評価される数値式です。
  2. 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テーブルを参照してください。

emp_dept_tables

次のステートメントは、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)
SQL ROUND function example

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

このチュートリアルは役に立ちましたか?