5 SELECT 나타낼 칼럼
1 FROM 데이터를 불러옴(테이블명)
2 WHERE 조건
3 GROUP BY 특정 칼럼 그룹화
4 HAVING 그룹화한 데이터 조건
6 ORDER BY 정렬 DEFAULT 오름차순 DESC 내림차순
/*
배송업체별 특징을 파악해주세요.
새로운 칼럼 생성
(DATE1 : 첫주문날짜, DATE2 : 마지막주문날짜,
OrderCount : 주문건수, Customer: 중복제거한 고객수)
*/
SELECT ShipperID,
MIN(OrderDate) AS DATE1,
MAX(OrderDate) AS DATE2,
COUNT(OrderID) AS OrderCount,
COUNT(DISTINCT CustomerID) AS CustomerCount
FROM Orders
GROUP BY ShipperID
/*
2) 30건 이상 고객의 주문을 받은 직원을 알려주세요.
(주문건수 높은 순)
새로운 칼럼 생성 (OrderCount : 주문건수)
*/
SELECT EmployeeID,
COUNT(OrderID) AS OrderCount
FROM Orders
GROUP BY EmployeeID
HAVING COUNT(OrderID)>=30
ORDER BY OrderCount DESC
/*
3) 가장 많이 주문한 고객의 정보를 정리해주세요.
새로운 칼럼 생성
(OrderCount : 주문건수, Notes : 전체 주문일자)
*/
SELECT TOP 1 CustomerID,
COUNT(*) AS OrderCount,
STUFF((SELECT CONCAT(',',OrderDate)
FROM Orders
WHERE CustomerID = A.CustomerID
FOR XML PATH('')),1,1,'')
AS Notes
FROM Orders A
GROUP BY CustomerID
ORDER BY OrderCount DESC