ORACLE "% "퍼센트 구하기 자료
WITH AAA AS(
SELECT '홍길동1' NAME, 10 CNTS FROM DUAL UNION ALL
SELECT '홍길동2' NAME, 25 CNTS FROM DUAL UNION ALL
SELECT '홍길동3' NAME, 25 CNTS FROM DUAL UNION ALL
SELECT '홍길동4' NAME, 10 CNTS FROM DUAL UNION ALL
SELECT '홍길동5' NAME, 30 CNTS
)
SELECT NAME
, ROUND(RATIO_TO_REPORT(CNTS) OVER() *100),2) II '%' CNTS
FROM AAA
;
결과물
|
NAME |
CNTS |
1 |
홍길동1 |
10% |
2 |
홍길동2 |
25% |
3 |
홍길동3 |
25% |
4 |
홍길동4 |
10% |
5 |
홍길동5 |
30% |
나오게 됩니다 ㅎ
위처럼 자료가 적을경우 예외없이 정상으로 나오게됩니다
하지만
자료가 많을경우 % 퍼센트가 " .45% " 이런식으로 0.45이지만 0이 안붙어서 나오게됩니다. 그럴 경우에는 아래 처럼 하면됩니다
SELECT NAME,
DECODE(
SUBSTR(
ROUND(RATIO_TO_REPORT(CNTS) OVER() *100),2) II '%' ,1,1)
,'.'
'0' II ROUND(RATIO_TO_REPORT(CNTS) OVER() *100),2) II '%',
ROUND(RATIO_TO_REPORT(CNTS) OVER() *100),2) II '%'
) CNTS
하시면 0.45%로 나오게 됩니다
감사합니다
'ORACLE' 카테고리의 다른 글
[Oracle] SQL Developer 에서 DB 접속시 오류사항 (0) | 2018.11.05 |
---|---|
oracle replace 입니다 리플레이스 (0) | 2018.10.01 |
Oracle Replace 함수 생성(결과값 변환 출력) (0) | 2018.09.11 |
트리거 리스트 출력하기, 트리거 비활성화,삭제,활성화 (0) | 2018.03.20 |
데이터삭제시 에러 , 자식코드가 발견 되었습니다 (0) | 2018.03.20 |