-- 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
'프로그램 > MSSQL SERVER 2008R2' 카테고리의 다른 글
D19 - INSERT , UPDATE , DELETE (3) | 2010.10.05 |
---|---|
D19 - EX04 JOIN ( INNER JOIN , OUTER JOIN, CROSS JOIN, UNION JOIN) (0) | 2010.10.05 |
D18 - EX02 (DB활용, DROP 활용) (0) | 2010.10.04 |
D17 - EX02(MSSQL) (0) | 2010.10.01 |
D17 - EX01 (MSSQL) (0) | 2010.10.01 |