D18 - EX03 GROUP BY, HAVING, ORDER BY 기능활용 (SUM, AVG, COUNT, MIN, MAX 기능)

반응형

-- Northwind 데이터베이스 컨텍스트로 이동
USE Northwind
SELECT * FROM [Order Details]
--1. 집계함수
SELECT SUM(Freight), AVG(Freight), MIN(Freight), MAX(Freight),
    COUNT(Freight), SUM(Freight)/ COUNT(Freight)
FROM Orders

--2. 주문상세(oder Details) 테이블에서 주문별 통계 정보
SELECT [Order Details]

SELECT
       OrderID,
    SUM(Unitprice)'합계', AVG(Unitprice)'평균',
    MIN(Unitprice)'최저가격', MAX(Unitprice)'최고가격',
    COUNT(Unitprice)'건수'
FROM [Order Details]
GROUP BY OrderID

--2. 위 구문에서 합계가 50이상인 데이터만 조회

SELECT
       OrderID,
    SUM(Unitprice)'합계', AVG(Unitprice)'평균',
    MIN(Unitprice)'최저가격', MAX(Unitprice)'최고가격',
    COUNT(Unitprice)'건수'
FROM [Order Details]
--WHERE SUM(Unitprice) >50          --WHERE절에 집계함수를 사용할 수 없습니다.
GROUP BY OrderID
HAVING SUM(Unitprice) >50            --GROUP BY에 대한 조건은 HAVING절에 표시

--pubs 데이터베이스 컨텍스트로 이동
USE pubs
SELECT * FROM sales
--4. 매출(sales) 테이블에서 매장(store_id)별 판매 수량의 합계를 구하세요

SELECT  stor_id,
  SUM(qty) 수량합계
FROM sales
GROUP BY stor_id
HAVING SUM(qty) > 100


--5. sales.salesorderdatail 테이블에서 주문별 가격총계 및 평균을
--   가격총계 기준 내림차순 정렬해서 조회하세요

USE AdventureWorks

SELECT *
FROM [Sales].SalesOrderDetail

SELECT SalesOrderID 주문번호,
     SUM(UnitPrice) 가격총계, AVG(UnitPrice) 평균
FROM [Sales].SalesOrderDetail
WHERE UnitPrice > 1000       --UnitPrice가 1000 이상인 평균을 출력
GROUP BY SalesOrderID
--HAVING SUM(UnitPrice) > 25000
ORDER BY 가격총계 desc

-- NotThwind 데이터베이스 컨텍스트로 이동
USE Northwind

--6. 전체에 대한 통계 정보 조회
SELECT *, UnitPrice * Quantity 'total'
FROM [Order Details]
COMPUTE SUM(UnitPrice * Quantity)
COMPUTE AVG(UnitPrice * Quantity)


--7. 그룹별 통계 정보 조회
SELECT *, UnitPrice * Quantity 'total'
FROM [Order Details]
ORDER BY OrderID
COMPUTE SUM(UnitPrice * Quantity) BY orderID

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유