The use of AVG function for calculatiing the average does not change the situation, because casting is done by the same rules. It can be easily checked by running the query
which gives 1 rather than 2, should the rounding be completed.
If you are going to run similar queries on the web site, please, tick off the flag 'run without checking' in the exercise page, lest the system should carry out an unnecessary matching of the result with the reference solution for the specific exercise.
To obtain an "accurate" result of division of the whole numbers, one should cast operands (at least one of them) to a decimal. It can be done with the CAST function or through multiplication by the decimal unity, and it is what we are going to do:
which yields 1.670000 by way of result. That is, rounding is done correctly, but insignificant zeroes are preserved, which number corresponds to the number of significant digits used by default for the representation of the decimals. This number, naturally, depends upon which software is installed; so, in this case we are speaking about SQL Server. Here it would be appropriate to note that, when comparing the result with the "correct" solution, values 1.67 and 1.670000 will be considered as different. Therefore one should aslo take care of deleting the zeroes. Let us postpone this problem till the analysis of the next solution, because there this problem, as well as the rounding one, are solved correctly. There we'll also have a good look at a logical error which the solution 3.10.1 harbors.