퍼센트 구하기 0 1 1,033

by 55 [SQL Query] [2019.11.04 16:52:46]



SELECT    ISNULL(aaa ,'999')
    ,    ISNULL(bbb ,'') 
    ,    ISNULL(SUM(ccc),0) AS ttt --합계
    --,    ISNULL(CONVERT(DECIMAL,(CONVERT(FLOAT,ORDER_TYPE_COUNT)/CONVERT(FLOAT,COUNT(*)) * 100))) AS MONTH_DECIMAL
    ,    ISNULL(SUM(CASE WHEN year THEN b.count ELSE 0 END),0) 
    ,    ISNULL(SUM(CASE WHEN year THEN b.count ELSE 0 END),0) 
    ,    ISNULL(SUM(CASE WHEN year THEN b.count ELSE 0 END),0) 
    ,    ISNULL(SUM(CASE WHEN year THEN b.count ELSE 0 END),0) 
    ,    ISNULL(SUM(CASE WHEN year THEN b.count ELSE 0 END),0) 
    ,    ISNULL(SUM(CASE WHEN year THEN b.count ELSE 0 END),0) 
    ,    ISNULL(SUM(CASE WHEN year THEN b.count ELSE 0 END),0) 
    ,    ISNULL(SUM(CASE WHEN year THEN b.count ELSE 0 END),0) 
    ,    ISNULL(SUM(CASE WHEN year THEN b.count ELSE 0 END),0) 
    ,    ISNULL(SUM(CASE WHEN year THEN b.count ELSE 0 END),0) 
    ,    ISNULL(SUM(CASE WHEN year THEN b.count ELSE 0 END),0) 
    ,    ISNULL(SUM(CASE WHEN year THEN b.count ELSE 0 END),0) 
FROM    (
        SELECT    lll
            ,    tttt
            ,    ssss
        FROM    test A
        WHERE    num = '888'
        ) A
        FULL OUTER JOIN 
        (
            SELECT    LEFT(date,6) MONTH 
                ,    TYPE
                ,    COUNT(*) count
            FROM    TSA307
            WHERE    LEFT(date,4) = year
            GROUP BY LEFT(date,6), TYPE
        ) B
        ON A.kkkkkk = B.TYPE
GROUP BY A.lll, A.tttt,A.ssss

END

 

 

안녕하세요 
MSSQL 공부하고 있는 초보 개발자입니다.
제가 MSSQL를 공부하다 어려운점이 생겨서요...
제가 궁금한건 현재 한 A컬럼에 합계라는 값이 있습니다.
그 옆 B칼럼에 전체값중 A의 값이 몇%를 차지하는지 구하고 싶은데 어렵네요...
도움좀 부탁드립니다 ㅜㅜ

by 마농 [2019.11.04 18:20:25]

질문의 쿼리가 많이 이상하네요.
좀 그럴 듯 하게 올려주세요.
쿼리 무시하고 한글 부분만 읽고 답변 드립니다.
 

WITH t AS
(
SELECT 1 a
UNION ALL SELECT 2
UNION ALL SELECT 3
)
SELECT a
     , ROUND(100. * a / SUM(a) OVER(), 2) b
  FROM t
;

 

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