문제
다음 테이블과 인덱스가 주어졌을 때, 쿼리의 실행 결과로 올바른 것은?
SQLCREATE TABLE SALES ( REGION VARCHAR(10), PRODUCT VARCHAR(10), SALES_DATE DATE, AMOUNT NUMBER ); CREATE INDEX IDX_SALES ON SALES(REGION, PRODUCT, SALES_DATE); INSERT INTO SALES VALUES('EAST', 'A', '2024-01-01', 100); INSERT INTO SALES VALUES('EAST', 'A', '2024-01-02', 150); INSERT INTO SALES VALUES('EAST', 'B', '2024-01-01', 200); INSERT INTO SALES VALUES('WEST', 'A', '2024-01-01', 120); INSERT INTO SALES VALUES('WEST', 'B', '2024-01-02', 180); SELECT COUNT(*) FROM SALES WHERE REGION = 'EAST' AND PRODUCT IN ('A', 'C') AND SALES_DATE >= '2024-01-01';
① 1 ② 2 ③ 3 ④ 4
정답
2번
해설
조건을 만족하는 데이터를 분석하면: REGION='EAST' AND PRODUCT IN ('A','C') AND SALES_DATE>='2024-01-01' 조건에서, ('EAST','A','2024-01-01')과 ('EAST','A','2024-01-02') 2건이 해당됩니다. ('EAST','B','2024-01-01')은 PRODUCT 조건(IN ('A','C'))을 만족하지 않고, PRODUCT='C'인 데이터는 존재하지 않습니다. 복합 인덱스 (REGION, PRODUCT, SALES_DATE)가 모든 조건을 효율적으로 처리할 수 있습니다.