안녕하세요. 따시입니다.

 

SQL SUM, COUNT, MIN, MAX 집계함수가 있습니다.

 

예시로 테이블은 3개로 되어 있습니다.

MSSQL 샘플 데이타는 한동안 계속 아래로 이용할꺼 같습니다.

 

ITEM_MASTER TABLE (상품 마스터정보)
ITEM_CODE (상품코드) ITEM_NAME (상품명) ITEM_PRICE (상품가격)
M001 콜라 1,000
M002 사이다 1,000
P001 피자 10,000
P002 피자세트(콜라포함) 10,500
C001 후라이드치킨 8,000
C002 양념치킨 9,000
MEMBER_INFO TABLE (회원정보)
USER_ID (회원아이디) USER_NAME (회원이름)
ID0001 철수
ID0002 영희
ID0003 광수
ID0004 명수
ID0005 길동
ID0006 수영
MEMBER_ORDER TABLE (회원주문 정보)
USER_ID (회원아이디) ITEM_CODE (상품코드) ORDER_DATE (주문일자) AMOUNT (주문수량)
ID0001 M002 2020-07-01 5
ID0001 M001 2020-07-01 3
ID0002 P001 2020-07-01 1
ID0002 M001 2020-07-02 1
ID0004 C002 2020-07-02 1
ID0006 C001 2020-07-02 1
ID0001 C001 2020-07-03 1
ID0003 P002 2020-07-03 1
ID0006 P001 2020-07-03 2
ID0002 C002 2020-07-03 2

 

 

먼저 회원별 구매 건수를 조회해 보겠다

SELECT 
	A.USER_ID,    -- 회원아이디
	B.USER_NAME,  -- 회원명
	A.AMOUNT     -- 주문수량
FROM MEMBER_ORDER A, MEMBER_INFO B
WHERE 1=1
	AND A.USER_ID = B.USER_ID

그렇다면 위와 같이 조회 화면을 볼 수 있습니다.

 

SUM() 함수 사용 - 합계

회원별 기준으로 SUM 함수를 이용하여 주문수량 합산을 하겠습니다.

SELECT 
	A.USER_ID,                  -- 회원아이디
	B.USER_NAME,                -- 회원명
	SUM(A.AMOUNT) AS AMOUNT     -- 주문수량 합산
FROM MEMBER_ORDER A, MEMBER_INFO B
WHERE 1=1
	AND A.USER_ID = B.USER_ID
GROUP BY A.USER_ID, B.USER_NAME

COUNT() 함수 사용 - 건수

회원별 기준으로 COUNT 함수를 이용하여 회원별 Row 건수를 조회 하겠습니다.

SELECT 
	A.USER_ID,          -- 회원아이디
	B.USER_NAME,        -- 회원명
	COUNT(*) AS COUNT   -- COUNT
FROM MEMBER_ORDER A, MEMBER_INFO B
WHERE 1=1
	AND A.USER_ID = B.USER_ID
GROUP BY A.USER_ID, B.USER_NAME

MIN() 함수 사용 - 최소값

회원별 기준으로 MIN 함수를 사용하여 최소주문수량을 조회하겠습니다.

SELECT 
	A.USER_ID,                  -- 회원아이디
	B.USER_NAME,                -- 회원명
	MIN(A.AMOUNT) AS MIN_AMOUNT -- 최소주문수량
FROM MEMBER_ORDER A, MEMBER_INFO B
WHERE 1=1
	AND A.USER_ID = B.USER_ID
GROUP BY A.USER_ID, B.USER_NAME

 

MAX() 함수 사용 - 최대값

회원별 기준으로 MAX 함수를 사용하여 최대주문수량을 조회하겠습니다.

SELECT 
	A.USER_ID,                  -- 회원아이디
	B.USER_NAME,                -- 회원명
	MAX(A.AMOUNT) AS MAX_AMOUNT -- 최대주문수량
FROM MEMBER_ORDER A, MEMBER_INFO B
WHERE 1=1
	AND A.USER_ID = B.USER_ID
GROUP BY A.USER_ID, B.USER_NAME

 


 

'개발경험 및 메모 > Mssql' 카테고리의 다른 글

MSSQL 로그인 세션 정보 확인  (0) 2022.06.27
MSSQL 락 걸린 쿼리 찾기  (0) 2022.06.07
MSSQL INSERT, UPDATE.. 트랜젝션 로그 조회  (0) 2020.09.24
MSSQL ROLLUP  (0) 2020.07.17
MSSQL 함수정리  (0) 2020.06.25
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기