Во-первых, я бы посоветовал вам написать это следующим образом:
select status,
avg(case when grade = 'FOUR' then 1.0 else 0 end) as Total
from stud_info
where grade = 'FOUR'
group by status;
Затем, если вам нужно два десятичных знака, преобразуйте в десятичное:
select status,
convert(decimal(6, 2),
avg(case when grade = 'FOUR' then 1.0 else 0 end)
) as Total
from stud_info
where grade = 'FOUR'
group by status;
round()
изменяет значение , но оно не меняет тип .Уровень приложения / представления все еще может решить показать ненужные нули.
Вы также можете использовать format()
или str()
для преобразования значения в строку.