SELECT A.GUBUN , COUNT(A.CUR_YN) 전체 , COUNT(CASE WHEN A.CUR_YN = 'Y' THEN 1 END ) COUNT_Y , COUNT(CASE WHEN A.CUR_YN = 'N' THEN 1 END ) COUNT_N FROM ( SELECT A.GUBUN ,A.TB_PHY_NAME , MIN(CASE WHEN B.TB_PHY_NAME IS NOT NULLT HEN 'Y' ELSE 'N' END) AS CUR_YN FROM TB_DB_LIST A LEFT OUTER JOIN TB_ERD_LIST B ON A.TB_PHY_NAME = B.TB_PHY_NAME AND A.COL_PHY_NAME = B.COL_PHY_NAME AND A.COL_TYPE = B.COL_TYPE AND A.PK_YN = B.PK_YN WHERE 1=1 AND A.TB_PHY_NAME NOT LIKE '%#%' GROUP BY A.TB_PHY_NAME ,A.GUBUN ) A GROUP BY A.GUBUN ;