안녕하세요.

예를들어 아래와 같은 쿼리가 있습니다.

물론 아래 쿼리는 잘 돌아 갑니다.

하지만, 좀더 고급(?) 적으로 사용할수 없을까 궁금 합니다.

속도도 그렇구요..


설명 드리자면,  FROM 절의 POINT_TOT 컬럼의 서브쿼리는 MY_COLUMN = @MY_COLUMN 이 조건에 없습니다.

즉, 전체 사람들의 점수를 내는거죠.


아래의 쿼리도 작동은 되는데, 속도 측면에서 더 고급 쿼리는 없을까요?



SELECT 

R.ID

,R.NAME

,R.POINT

,R.POINT_TOT, ROUND(R.POINT/R.POINT_TOT*100,1) AS POINT_RES

FROM

(

SELECT 

A.ID

,A.NAME

,ROUND(AVG(A.POINT),1) AS POINT

,(

SELECT 

ROUND(AVG(AA.POINT),1) 

FROM TEST_DB AS AA

WHERE AA.L_COLUMN = @L_COLUMN AND AA.M_COLUMN = @M_COLUMN AND AA.S_COLUMN = @S_COLUMN AND AA.T_COLUMN = @T_COLUMN AND

GROUP BY AA.ID

) AS POINT_TOT

FROM TEST_DB

WHERE 

L_COLUMN = @L_COLUMN

AND M_COLUMN = @M_COLUMN

AND S_COLUMN = @S_COLUMN

AND MY_COLUMN = @MY_COLUMN

GROUP BY A.ID, A.NAME

) AS R

ORDER BY R.ID