August 7, 2023
Summary: The PostgreSQL ROUND()
function rounds a numeric value to its nearest integer or a number with the number of decimal places.
Table of Contents
Syntax
The following illustrates the syntax of the ROUND()
function:
ROUND (source [ , n ] )
Arguments
The ROUND()
function accepts 2 arguments:
\1) source
The source
argument is a number or a numeric expression that is to be rounded.
\2) n
The n
argument is an integer that determines the number of decimal places after rounding.
The n argument is optional. If you omit the n argument, its default value is 0.
Return Value
The ROUND()
function returns a result whose type is the same as the input if you omit the second argument.
In case if you use both arguments, the ROUND()
function returns a numeric value.
Examples
A) Round to an integer example
The following example shows how to round a decimal using the ROUND()
function:
SELECT
ROUND( 10.4 );
Because the nearest integer of 10.4 is 10, the function returns 10 as expected:
10
The following example rounds 10.5:
SELECT
ROUND( 10.5 );
The result is:
11
B) Round to 2 decimal places examples
The following example illustrates how to round to 2 decimal places:
SELECT
ROUND( 10.812, 2 );
Result
10.81
And another example of rounding a decimal to 2 decimal places:
SELECT
ROUND( 10.817, 2 );
Result
10.82
You can change the second argument to round a number to specific decimal places.
C) Rounding data from table examples
We will use the following payment
and customer
tables in the sample database for the demonstration.
The following statement retrieves the average rental fee that each customer has paid.
SELECT
first_name,
last_name,
ROUND( AVG( amount ), 2 ) avg_rental
FROM
payment
INNER JOIN customer
USING(customer_id)
GROUP BY
customer_id
ORDER BY
avg_rental DESC;
In this statement, we use the ROUND()
function to round average rental fee to 2 decimal places.
The following picture illustrates the result:
The following statement calculates the average number of rentals per customer.
WITH rental(customer_id,rent) AS
(
SELECT
customer_id,
COUNT( rental_id )
FROM
payment
GROUP BY
customer_id
)
SELECT
ROUND(AVG(rent))
FROM
rental;
In this example, we used the ROUND()
function to round the result to an integer.
In this tutorial, you have learned how to use the PostgreSQL ROUND()
function to round a number to its nearest integer or to a number of a specified decimal places.
See more
PostgreSQL Tutorial: Math Functions
PostgreSQL Documentation: Mathematical Functions and Operators