WITH EXAMPLE AS
(
SELECT 'NO1' AS ID , '1' AS VAL FROM DUAL UNION
SELECT 'NO1' AS ID , '2' AS VAL FROM DUAL UNION
SELECT 'NO1' AS ID , '3' AS VAL FROM DUAL UNION
SELECT 'NO2' AS ID , '1' AS VAL FROM DUAL UNION
SELECT 'NO2' AS ID , '2' AS VAL FROM DUAL UNION
SELECT 'NO3' AS ID , '1' AS VAL FROM DUAL
)
SELECT * FROM EXAMPLE
VAL 이 1,2 만 가지고 있는데이터
즉 ID가 NO2만 가져오고싶습니다
(NO1 은 VAL 이 3이 있어서 검색되면 안됩니다, NO3은 1만있고 2가 없어서 검색되면 안됩니다. )
WHERE 절을 어떻게 해야할까요? OR은 쉬운데 AND로 거니까 데이터가 안나오고
단순해 보이는데 어렵네요
조언좀 해주세요 감사합니다..
WITH example AS ( SELECT 'NO1' id, '1' val FROM dual UNION ALL SELECT 'NO1', '2' FROM dual UNION ALL SELECT 'NO1', '3' FROM dual UNION ALL SELECT 'NO2', '1' FROM dual UNION ALL SELECT 'NO2', '2' FROM dual UNION ALL SELECT 'NO3', '1' FROM dual ) SELECT id FROM example GROUP BY id HAVING MIN(val) = '1' AND MAX(val) = '2' ;