본문 바로가기
개발공부 일지/오라클

오라클) Oracle에서 IN 조건으로 여러 값을 동시에 만족하는 쿼리 작성법

by Box Cat 2024. 7. 16.
728x90
반응형

  업무 중에, IN 조건을 모두 만족하는 데이터를 출력할 때가 종종 있습니다.  일반적인 IN 조건은 하나라도 만족하는 값을 추출하지만,  이번에는  IN 조건을 사용할 때, IN 조건을 동시에 모두 만족하는 결과를 얻는 방법을 살펴보겠습니다. 

 

 

테이블

CREATE TABLE my_table (
    id NUMBER,
    value VARCHAR2(10)
);

 

 

1. GROUP BY와 ROW_NUMBER() 을 사용하여 모든 값 포함 확인하기

 

SELECT T1.ID
FROM
(
    SELECT id, VALUE, ROW_NUMBER()OVER(PARTITION BY ID ORDER BY ID) RN
    FROM my_table
    WHERE value IN ('a', 'b', 'c', 'd')
    GROUP BY ID, VALUE
) T1
WHERE T1.RN = 4
;

 

 

2.GROUP BY와 COUNT() 을 사용하여 모든 값 포함 확인하기

 

SELECT DISTINCT T1.ID
FROM
(
    SELECT id, VALUE, COUNT(*)OVER(PARTITION BY ID) CNT
    FROM my_table
    WHERE value IN ('a', 'b', 'c', 'd')
    GROUP BY ID, VALUE
) T1
WHERE T1.CNT = 4
;

 

테이블 자료

 

테이블 출력 결과

 

 
 
 
 
728x90
반응형

댓글