서브 쿼리(subqueries)

canyi·2023년 6월 4일
0

MSSQL

목록 보기
20/21

US에 사는 사람의 모든 주문내역을 보려면?

괄호에 있는 select가 우선으로 실행

in 조건에 사용

총 주문금액 상위 10%로인 사람들의 주문내역 표시

/* 총 주문금액 상위 10%로인 사람들의 주문내역 표시*/

SELECT SalesOrderID, CustomerID
FROM SalesOrder
WHERE CustomerID IN (
SELECT TOP 10 PERCENT so.CustomerID
FROM SalesOrder so
INNER JOIN SalesOrderDetail sod
ON (so.SalesOrderID = sod.SalesOrderID)
GROUP BY so.CustomerID
ORDER BY SUM(sod.SubTotal) DESC
);

서브쿼리 테이블

SELECT * 
FROM
(SELECT CustomerID, FirstName
FROM Customer
)
tmp_table;

전체 평균 주문금액 구하기

SELECT AVG(Order_Total)
FROM(
SELECT 
	SalesOrderID,
	SUM(SubTotal) AS Order_Total
FROM SalesOrderDetail
GROUP BY SalesOrderID
) tbl_order_total;

WHERE 조건에 이용

SELECT * FROM SalesOrder
WHERE
DATEDIFF(day, OrderDate, ShipDate) <= (
SELECT AVG(DATEDIFF(day, OrderDate, ShipDate))
FROM SalesOrder
);

Point

profile
백엔드 개발 정리

0개의 댓글