FAQ: Aggregate Functions - Round

This community-built FAQ covers the “Round” exercise from the lesson “Aggregate Functions”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Web Development
Data Science

Learn SQL

FAQs on the exercise Round

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

I still don’t understand why the numeral (2) is used to round to an average of two decimal places.

SELECT ROUND(price, 0)
FROM fake_apps;

The above example rounds to the nearest integer.

SELECT ROUND(price, 2)
FROM fake_apps;

The above example rounds to the nearest second decimal place.

ROUND(123.456, 2)    //  123.46


If the function takes in a column name, how does avg(prices) qualify as one? I thought avg(prices) returns a single value?

Can someone elaborate. Thanks

Why does it matter which order you put the functions?

For example,

FROM fake_apps;

returns the correct answer of 2.02, but:

FROM fake_apps;

returns 2.02365, with the wrong number of decimals.

Why doesn’t the second set of commands take the column of prices, round it to two decimals, and then average it? I suppose this second approach introduces more error, but the commands should still work, no?


My understanding is that avg(prices) actually creates a new column (temporarily, I guess) with just one row whose value is the average price.

In the first line

SELECT ROUND (AVG(price), 2)
FROM fake_apps;

How would I know the exact order / way in which the parentheses are used? I mean instead of (AVG(price), 2) why not AVG(price, 2)? How / where can I learn; why is it the way it is?

Thank you for the help

don’t read letters/characters, read it as a set of instructions: calculate the the average price and round this result to two decimals

understanding functions, parameters and arguments are the underlying programming concepts you need/are looking for.

My code worked, but would it work in a real-world scenario?

SELECT AVG(ROUND (price, 0)) 
FROM fake_apps;

It is not returning the ‘wrong’ number of decimals. It is returning the exact result of the AVG function.
Your suggested function takes the column of prices, rounds each price to 2 decimals, and then averages the rounded prices. There is no reason to expect that the average of a set of two decimal numbers will have exactly two decimals.
For example, if I have just two prices: 1.12 and 2.01, then the ROUND function will first round them to two decimal places, resulting in 1.12 and 2.01, because they are already stated at 2 decimal places. The AVG function will then calculate the exact average of 1.12 and 2.01. The formula for AVERAGE of two numbers is: (A + B) / 2
(1.12 + 2.01) / 2 = 3.13 / 2 = 1.565
In this example, the exact return of the AVERAGE function has 3 decimal places.