오라클 10g는 별칭 설정을 달리 하셔야 합니다. by 랑에 1님의 쿼리를 아래와 같이 변경 하시면 됩니다. WITH t AS ( SELECT 'A' name, 0 value FROM dual UNION ALL SELECT 'A', 8 FROM dual UNION ALL SELECT 'B', 0 FROM dual UNION ALL SELECT 'C', 8 FROM dual ) SELECT name, value FROM ( SELECT name, value, count(DECODE(value, 0, 1)) OVER(PARTITION BY name) cnt FROM t ) WHERE cnt > 0 다른 방법은 WITH t AS ( SELECT 'A'name , 0 value FROM dual UNION ALL SELECT 'A', 8 FROM dual UNION ALL SELECT 'B', 0 FROM dual UNION ALL SELECT 'C', 8 FROM dual ) SELECT * FROM t a WHERE EXISTS (SELECT 1 FROM t b WHERE a.name = b.name AND b.value = 0)
-- In SubQuery SELECT * FROM t WHERE name IN (SELECT name FROM t WHERE value = 0) ; -- Exists SubQuery SELECT * FROM t m WHERE EXISTS (SELECT 1 FROM t s WHERE s.value = 0 AND s.name = m.name) ; -- Self Join SELECT m.* FROM t m , t s WHERE s.value = 0 AND s.name = m.name ; -- Analytic Function SELECT * FROM (SELECT name, value , MIN(DECODE(value, 0, 0)) OVER(PARTITION BY name) x FROM t ) WHERE x = 0 ;