콘텐츠 진행률에서 서브쿼리 2개를 가져와서 나눗셈 처리를 했었는데, 서브쿼리 말고 case랑 distinct로 개선했다.
tc와 tcs를 left outer join하면 tc의 개수 + a(tc와 tcs의 on 조건에 해당하는 데이터) 가 나온다.
완료된 콘텐츠 개수 / 전체 콘텐츠 개수(중복 제거)
IFNULL(ROUND((SUM(CASE WHEN TCS.STDNT_ID = '' THEN 1 END) / COUNT(DISTINCT TC.TCH_CLS_CONT_ID)) * 100, 1), 0) A