Postgresql round to 2 decimal places

The ROUND () function converts the number you provided in the decimal or integer form up to the given integer. It can take a single or two arguments depending upon the condition you provide.


ROUND (number [ , n ] )

See all the major round functions running in PostgreSQL schema are shown by using the appended command.

>> \df *round*

From the image, we can see that the schema name is displayed with the name function, each having the resultant data type and the data type that is to be passed as an argument. The details that are displayed here show the current schema. If you want to have the information regarding another one, then you may switch to the other database.

Example 1
The first example is the simple syntax-based of a round function. In which we have to round the value up to 2 decimal places. In the current example, after the “.”, we have “34” which is less than “5”, so the portion of the number before the decimal point is displayed only because the number has rounded down, and the result will be the number before “.”.

>> select ROUND (12.34);

You can see from the result that the values after the decimal point are removed.

Example 2
This example deals with the round of concept, unlike the last example. Here the decimal part contains the value equal to “5”. The number before the decimal point ”.” is incremented by one if the number on the right is more than “5”. A similar case is done here.

>> select ROUND(12.5);

Example 3
Till now, both examples displayed the result by providing the number up to a single decimal place. If you don’t provide any number, the system by default considers it 1. And if you are interested in having the resultant value up to a certain value of decimal, you can provide that number with the fractional input value, as shown in the image below.

>> select ROUND(12.924, 2);

We have provided “2” in the query. For this purpose, we need to input the value for 3 decimal places. i.e., “12.924” so that it can jump to 2 decimal places. As the foremost number after “.” is 9 (greater than “5”) it will remain the same. Because for “round to 2 decimal places” we need to consider the third value that implies the second one. For example, the value in this example is “4” so the value at the second position will remain the same, and the third value is removed.

Example 4
Similarly, when the third number is equal or greater than 5, it affects the second value so that the second value will be rounded off, and the first value after the decimal point “.” remains the same. As in the image attached here, “.925” will become “.93” because of the use of “5” in the example.

>> select ROUND ( 12.925 , 2);

Example 5
Not only the single values are used in the round function. But we can also use the values in the form of a table to apply the ROUND() on the values collectively on a column or all columns by applying a single command.

Create a table teacher by using the “create” command and add values by having the query “insert”. To display the data of the table using the select command.

>> select * from teacher;

We use the command to apply the ROUND () function on a single column, “salary”. In this table, the round function is not directly applied to the values. Because salary is not given in decimal form. So to make it in decimal form, we have divided the value by a decimal number. The resultant value will be used as input for the average function, and then we apply the round() on it.

Here “group by” clause is used on those columns selected in the “select” statement and will be shown as a result. The round function takes the value and converts it to 2 decimal places. The 3rd column that is created to have the resultant value in the column is named “divided_val”.

>> SELECT id, salary, Round ( AVG (salary / 2.3), 2) divided_val from teacher GROUP BY id, salary ORDER BY divided_val DESC;

The resultant value will be arranged in descending order. All the two columns will be arranged in descending order for the new column, respectively.

The above image shows the resultant column. You can see that all the values are in decimal form and up to two decimal places.

Example 6
Another query is applied to the same table. Through this command, we will get a single number.

>> WITH sal (id, salary) AS (select id, COUNT ( salary ) FROM teacher GROUP BY id ) SELECT ROUND(AVG ( salary )) FROM teacher;

The round function will convert the result into an integer because we have not provided any number for converting to the decimal places. Moreover, we have used the “with-AS” clause to select columns to apply the function. In the “select” command, the count function is used to count the teachers’ salaries. After that, the round function will calculate the average from the salary column, and then conversion is done.

The manual calculation shows that the average answer of the values of the column is “51.125”. As we have discussed in our first example when no number is added to show the decimal place. It is considered as “1” by default, so the value is also below 5. That’s how we got an integer value.

Example 7
In this example, we have created a function( casting strategy), just like any programming language, that can accept the values as parameters. The query is displayed in the attached image.

It will return a numeric value. Like other functions, we will make a function call and pass the value through it.

>> select round (34/67., 7);

As you can see that we have used the “7” number for the decimal place, so we will get 7 digits after the decimal point. But if we convert it in the round form again, then we will get an integer/ numeric type“1”.

If we use “2” decimal place, the answer will be again “1”.

Example 8
This example explains the difference between the trunc() ad the round () function. The round() function increments the number with 1, whereas Trunc () simply truncates the number into zero. For example, we have two same values. And now we will apply both functions to them. You will see the difference

>> select round (6.499, 2) ,  trunc (6.499, 2);


“Postgresql round to 2 decimal places” is used to convert the value at 2 decimal points either in integer or in float value. Basic terminologies, round function on the table, and casting strategy are used to explain this function’s working in detail. I am hopeful that my effort will help you to gain knowledge regarding the topic.

About the author

Aqsa Yasin

I am a self-motivated information technology professional with a passion for writing. I am a technical writer and love to write for all Linux flavors and Windows.