SELECT A.WORK_DT, A.FAC_ID , A.GRADE_CD , COUNT(*) GRADE_CD_CNT , ROUND( RATIO_TO_REPORT(COUNT(*)) OVER(PARTITION BY GROUPING(A.GRADE_CD)) * 100, 1) GRADE_CD_PCT FROM QUAL_DAILYLOTGRADE_SUM A WHERE 1=1 AND A.FAC_ID = 'ICPRB' AND A.WORK_DT = '20200702' GROUP BY A.WORK_DT, A.GRADE_CD, A.FAC_ID ORDER BY A.WORK_DT, A.GRADE_CD, A.FAC_ID ;
해당 날짜 선택해서 GRADE_CD 컬럼에 대한 데이터들을 카운트하여 백분율 내주는 쿼리입니다.
저기서
AND A.WORK_DT <= '20200702'
AND A.WORK_DT >= '20200628' 이렇게 AND절을 추가하게되면
추출된 데이터 모두가 날자별로 끊어지는게 아니고 GRADE_CD 컬럼 데이터 전체가 백분율이 됩니다..
제가 원하는건 FROM TO 까지 선택한 날자별로 백분율이 딱딱딱 나오게 하고싶은데요 도저히 머리가 안굴러가네요 ㅜㅜ
EX) 20200628일자 데이터들 백분율/ 20200629일자 데이터들 백분율/ / / / 이렇게 나오게 하고싶습니다.
부탁드립니다.
SELECT A.WORK_DT , COUNT ( * ) GRADE_CD_CNT , ROUND ( RATIO_TO_REPORT ( COUNT ( * ) ) * 100, 1 ) GRADE_CD_PCT FROM QUAL_DAILYLOTGRADE_SUM A WHERE 1 = 1 AND A.FAC_ID = 'ICPRB' AND A.WORK_DT = '20200702' GROUP BY A.WORK_DT ORDER BY A.WORK_DT
작성하신 쿼리는 GROUP BY가 DT, ID, CD로 걸려있어 첨부하신 이미지 처럼 나타나고 있습니다.
원하시는게 이 쿼리가 맞나요?