이행률 추가 질문 올립니다. 하하하.. 0 2 2,086

by nayha [SQLServer] [2014.02.19 18:14:52]


이행률.JPG (14,188Bytes)

select count(sCnt) as 이행률의갯수,Scnt as 이행률 from (
SELECT
sign(month_1)
+ sign(month_2)
+ sign(month_3)
+ sign(month_4)
+ sign(month_5)
+ sign(month_6) sCnt
FROM 이행율테이블
where 이행률뽑을범위아이디 ='140127'
) a 
group by sCnt 

이렇게 해서 

요렇게 결과를 얻어 내었습니다. 


또 궁금한게요  

퍼센티지를  각 이행률 단위(개월수)로 계산할려면 어떻게 해야 할까요?

이행률갯수 모두 더한값(범위전체) / 이행률 갯수 * 100 하면  각 각 이행률 단위로 퍼센티지가 나올것 같은데

전체카운트 나 SUM 할려고 하면 group by 때문에 안된다고 합니다...

제가 원하는 결과 입니다.

위 결과를기준으로

0개월 이행률   3%
1개월 이행률   3%
2개월 이행률   0%
3개월 이행률   6%
4개월 이행률   6%
5개월 이행률   21%
6개월 이행률   62%

자꾸 해보는데 안되서 질문드립니다 
저도 얼렁 고수가 되서 답변도 좀 달고 싶네요 ㅠㅠ



 
by 필상 [2014.02.20 11:25:47]

WITH T AS(
SELECT 1 CNT, 0 MON FROM DUAL UNION ALL
SELECT 1 CNT, 1 MON FROM DUAL UNION ALL
SELECT 2 CNT, 3 MON FROM DUAL UNION ALL
SELECT 2 CNT, 4 MON FROM DUAL UNION ALL
SELECT 7 CNT, 5 MON FROM DUAL UNION ALL
SELECT 21 CNT, 6 MON FROM DUAL ),
T2 AS(
SELECT LEVEL - 1 AS LV  FROM DUAL CONNECT BY LEVEL <= 7 )
SELECT ROUND(NVL(A.CNT, 0) / SUM(A.CNT) OVER() * 100, 1) AS PER,
   B.LV
  FROM T A,
   T2 B
 WHERE B.LV = A.MON(+)
 ORDER BY B.LV;

by nayha [2014.02.20 15:44:44]
^_^ 답변감사합니다.

MSSQL 로 할려니까 좀 힘드네요 ㅎㅎ 

참고하여 해결 하였습니다 감사합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입