SELECT 고객.이름, SUM(주문.금액) AS 총매출
SELECT DISTINCT 고객.지역
FROM 고객
SELECT 고객.ID
FROM 고객
JOIN: 결합할 테이블이나 뷰를 지정하여 데이터를 통합ON: 테이블 간의 결합 조건을 지정INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN 있음 (자세한건 조인(JOIN) 포스팅에서)-- (INNER) JOIN 예제
SELECT 고객.이름, 주문.주문일자
FROM 고객
JOIN 주문 ON 고객.고객ID = 주문.고객ID
SELECT 고객.ID
FROM 고객
WHERE 고객.이름 = '홍길동'
SELECT 고객.지역, COUNT(고객.ID) AS 고객수
FROM 고객
GROUP BY 고객.지역
SELECT 고객.지역, SUM(주문.금액) AS 총매출
FROM 고객
GROUP BY 고객.지역
HAVING SUM(주문.금액) > 500000
SELECT 고객.이름, SUM(주문.금액) AS 총매출
FROM 고객
GROUP BY 고객.이름
ORDER BY 총매출 DESC
LIMIT: 반환할 행(row)의 최대 개수를 지정OFFSET: 반환할 행의 시작 위치를 지정SELECT 고객.이름, SUM(주문.금액) AS 총매출
FROM 고객
GROUP BY 고객.이름
ORDER BY 총매출 DESC
LIMIT 10 OFFSET 5
SQL 쿼리를 작성할 때, 절들이 작성된 순서와 실제로 데이터베이스 엔진이 절들을 실행하는 순서는 다름
SELECT(DISTINCT) -> FROM (JOIN) -> WHERE -> GROUP BY -> HAVING -> ORDER BY -> LIMIT / OFFSET
SELECT DISTINCT 고객.이름, SUM(주문.금액) AS 총매출
FROM 고객
JOIN 주문 ON 고객.고객ID = 주문.고객ID
WHERE 주문.주문일자 BETWEEN '2024-01-01' AND '2024-12-31'
GROUP BY 고객.이름
HAVING SUM(주문.금액) > 100000
ORDER BY 총매출 DESC
LIMIT 5;
FROM (JOIN) -> WHERE -> GROUP BY -> HAVING -> SELECT(DISTINCT) -> ORDER BY -> LIMIT / OFFSET