patients
테이블에 refinst
열 값이있는 행의 %를 제공하기 위해 다음 쿼리를 실행하려고합니다 . 계속 0의 결과를 얻습니다.
select (count (refinst) / (select count(*) from patients) * 100) as "Formula"
from patients;
이 테이블에는 15556 개의 행이 있으며 select count(refinst) from patients
그 중 1446 개는 refinst
열에 값이 있음을 알려줍니다 . 쿼리에서 얻고 싶은 응답은 30.62 ( 1446/15556*100=30.62XXXXX
소수점 이하 두 자리로 반올림)입니다.
카운트 결과의 데이터 유형 (내가 가정하는 정수)과 관련이 있다고 확신합니다. 정수를 정수로 나누고 결과가 0보다 작 으면 0으로 잘립니다. 이 경우 누군가가 카운트 결과를 소수점 이하 2 자리의 숫자로 캐스팅하여 결과가 소수점 2 자리로 반올림되는 방법을 보여줄 수 있습니까?
여러 count 문 보다이 코드를 작성하는 더 좋은 방법이 있다고 확신합니다. 특히이 쿼리를 작성하는보다 프로세서 효율적인 방법을 찾고 있습니다.