문제
다음 테이블과 복합 인덱스가 있을 때, 주어진 쿼리의 실행 결과로 올바른 것은?
SQLCREATE TABLE orders ( order_date DATE, status VARCHAR(10), amount NUMBER ); -- 복합 인덱스: (order_date, status) INSERT INTO orders VALUES ('2023-01-01', 'PAID', 1000); INSERT INTO orders VALUES ('2023-01-01', 'PENDING', 2000); INSERT INTO orders VALUES ('2023-01-02', 'PAID', 1500); INSERT INTO orders VALUES ('2023-01-03', 'CANCEL', 500); SELECT COUNT(*) FROM orders WHERE order_date >= '2023-01-02' AND status IN ('PAID', 'PENDING');
① 0 ② 1 ③ 2 ④ 3
정답
2번
해설
쿼리 조건을 분석하면: order_date >= '2023-01-02'인 레코드는 ('2023-01-02', 'PAID', 1500)과 ('2023-01-03', 'CANCEL', 500)입니다. 이 중에서 status IN ('PAID', 'PENDING') 조건을 만족하는 것은 ('2023-01-02', 'PAID', 1500) 1건뿐입니다. 복합 인덱스 (order_date, status)가 있어 효율적으로 처리되며, 최종 결과는 1입니다.