I am using the following line within a Select which returns a number with decimals, e.g. 33.33333.
How can I round this within the Select and convert to integers so that I don’t have decimals, e.g. in the above example it should return 33 ?
100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END) AS matchPercent
Advertisement
Answer
You can use ROUND
function to round the value to integer:
ROUND(INT, 100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END), 0) AS matchPercent
This will retain the type, e.g rounded float
will stay float
. If you also need to return int
data type (or other integer data types), you need to also convert it:
CONVERT(INT, ROUND(INT, 100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END), 0)) AS matchPercent