Как получить процент с помощью приведения(оператор count и case) в SQL

#sql

Вопрос:

выберите приведение((количество(отдельный случай, когда дата рождения= «да», затем идентификатор студента, другой конец)/количество(отдельный идентификатор студента)) в десятичном виде(2,2))

  from #tmpcombined.

Issue : last step which is percentage is returning as 0.00 instead 0.50. There are two students out of 4 whose who attended school on their birthday. 
 

Комментарии:

1. Отметьте свой вопрос в базе данных, которую вы используете.

Ответ №1:

Некоторые базы данных выполняют целочисленное деление. Чтобы предотвратить это, я просто умножаю на 1,0:

 select (count(distinct case when birthdayattendancek = 'yes' then Student_ID end) * 1.0 /
        count(distinct Student_ID)
       )
 

cast() ing после деления просто переводит результаты в десятичную дробь.