Kong Eunho

복합 쿼리 예제 - 1

2025년 08월 07일 22시
카테고리 - TIL, sqld, 3_SQL_기본


복합 쿼리 예제 - 1

WHERE, GROUP BY, HAVING, ORDER BY가 모두 포함된 복합 쿼리를 하나 살펴본다. 이 예제에서는 회원들의 주문금액 데이터를 분석해서 특정 기간으로 필터링한 뒤 기간 내 2회 이상 주문한 회원들의 주문금액의 합계와 최고주문금액을 구하고자 한다.

사용할 테이블 생성 :

CREATE TABLE TBL (
    주문번호 VARCHAR(5) PRIMARY KEY,
    회원번호 VARCHAR(5) NOT NULL,
    주문일시 VARCHAR(8) NOT NULL,
    주문금액 NUMBER NOT NULL
);


예시 데이터 입력 :

INSERT INTO TBL VALUES(‘001’, ‘A001’, ‘20250802’, 1000);
.
.
.


데이터가 입력된 테이블 :

TBL
주문번호 회원번호 주문일시 주문금액
001 A001 20250802 1000
002 A001 20250810 3000
003 A002 20250803 2000
004 A002 20250811 2000
005 A002 20250815 2000
006 A003 20250804 1000
007 A003 20250814 4000
008 A003 20250821 1000
009 A003 20250824 1000
010 A004 20250810 2000


쿼리 전문 :

SELECT 회원번호, MAX(주문금액) AS 최고주문금액, SUM(주문금액) AS 주문금액합계
FROM TBL
WHERE 주문일시 BETWEEN ‘20250801’ AND ‘20250815’
GROUP BY 회원번호
HAVING COUNT(*) >= 2
ORDER BY 주문금액합계 DESC;


실행 순서 :

① WHERE -> ② GROUP BY -> ③ HAVING -> ④ SELECT -> ⑤ ORDER BY

실행결과
회원번호 최고주문금액 주문금액합계
A002 2000 6000
A003 4000 5000
A001 3000 4000
◀ 이전 글 TIL, sqld, 3_SQL_기본
3.7 조인
2025-08-06
목록으로 다음 글 ▶ TIL, sqld, 3_SQL_기본
복합 쿼리 예제 - 2
2025-08-08