WITH TEST_USE AS ( SELECT 'A' ID, '테스트1' CNTT FROM DUAL UNION ALL SELECT 'A' ID, '테스트2' CNTT FROM DUAL UNION ALL SELECT 'A' ID, '테스트3' CNTT FROM DUAL UNION ALL SELECT 'B' ID, '테스트4' CNTT FROM DUAL UNION ALL SELECT 'B' ID, '테스트5' CNTT FROM DUAL UNION ALL SELECT 'B' ID, '테스트6' CNTT FROM DUAL UNION ALL SELECT 'C' ID, '테스트7' CNTT FROM DUAL UNION ALL SELECT 'C' ID, '테스트8' CNTT FROM DUAL UNION ALL SELECT 'C' ID, '테스트9' CNTT FROM DUAL ) -- CASE 1 ROW_NUMBER() 사용 --SELECT ID, CNTT --FROM --( SELECT ID, CNTT, ROW_NUMBER() OVER ( PARTITION BY ID ORDER BY CNTT ) AS RN -- FROM TEST_USE ) TMP --WHERE TMP.RN = 1 -- CASE 2 -- 단순 GROUP BY --SELECT ID, MIN(CNTT) --FROM TEST_USE --GROUP BY ID -- CASE 3 -- KEEP 절 사용 --SELECT ID, MAX(CNTT) KEEP(DENSE_RANK LAST ORDER BY CNTT DESC ) --FROM TEST_USE --GROUP BY ID