MAX - 최대
SELECT MAX(컬럼명) FROM 테이블명;
SELECT MAX(Price) FROM products; -- 제일 큰 금액(Price) 출력
-- 가격이 최대인 상품명도 알고 싶어 SELECT에 ProductName 컬럼을 넣었다
-- ProductName이 제대로 매칭안됨
-- Côte de Blaye가 나와야하는데 맨 처음 레코드가 나옴
SELECT ProductName, MAX(Price) FROM products;
-- 집계함수 사용해서 상품명이랑 제대로 매칭되서 보고 싶다면 서브쿼리 활용
SELECT * FROM products
WHERE Price = (SELECT MAX(Price) FROM products);
MIN - 최소
SELECT MIN(컬럼명) FROM 테이블명;
SELECT MIN(Price) FROM products; -- 제일 작은 금액(Price) 출력
COUNT - 갯수
SELECT COUNT(컬럼명) FROM 테이블명;
SELECT COUNT(EmployeeID) FROM employees; -- 직원 수 조회
SUM - 합계
SELECT SUM(컬럼명) FROM 테이블명;
SELECT SUM(Price) FROM products; -- 상품 가격의 모든 합
-- 96년 07월 04일에 매출액 구하기
SELECT SUM(p.Price * od.Quantity) AS 매출액
FROM products p JOIN orderdetails od
ON p.ProductID = od.ProductID
JOIN orders o
ON o.OrderID = od.OrderID
WHERE o.OrderDate = '1996-07-04';
AVG - 평균
SELECT AVG(컬럼명) FROM 테이블명;
SELECT AVG(Price) FROM products; -- 가격 평균 값
GROUP BY - 그룹함수 사용 시 그룹함수의 범위 지정
SELECT 컬럼명, 집계함수.. FROM 테이블명 GROUP BY 그룹으로 지정할 컬럼명;
-- 카테고리 ID 별로 금액이 제일 높은거 조회
SELECT CategoryID ,MAX(Price) FROM products GROUP BY CategoryID;
※ GROUP BY 함수 사용시 기존 집계 함수에서 서브쿼리 사용해 다른 컬럼이랑 같이 묶어서 봤던걸 조회할 수 있다.
이유는 GROUP BY로 묶었기 때문에 서브쿼리 없이 SELECT문을 통해 조회 가능
HAVING - 그룹함수 연산결과를 조건으로 줄 수 있는 키워드
SELECT 컬럼명, 집계함수.. FROM 테이블명 GROUP BY 그룹으로 지정할 컬럼명 HAVING 그룹함수 조건;
-- 고객별 총 주문금액이 10만원이 넘는 고객들만 조회
SELECT c.CustomerName AS 고객명, SUM(p.Price * od.Quantity) `총 주문 금액`
FROM products p JOIN orderdetails od
ON p.ProductID = od.ProductID
JOIN orders o
ON od.OrderID = o.OrderID
JOIN customers c
ON o.CustomerID = c.CustomerID
GROUP BY c.CustomerID
HAVING `총 주문 금액` >= 100000; -- GROUP BY그룹함수의 HAVING으로 조건주기
총 예제)
-- 총 처리 금액 10만 달러 미만인 직원 조회
SELECT CONCAT(e.LastName, ' ', e.FirstName) AS 직원명, SUM(p.Price * od.Quantity) AS `총 처리 금액`
FROM products p JOIN orderdetails od
ON p.ProductID = od.ProductID
JOIN orders o
ON od.OrderID = o.OrderID
JOIN employees e
ON o.EmployeeID = e.EmployeeID
GROUP BY e.EmployeeID
HAVING `총 처리 금액` < 100000;
반응형
'DataBase' 카테고리의 다른 글
트랜잭션(Transaction) (0) | 2023.10.20 |
---|---|
ALTER TABLE - 테이블 수정 (Maria DB) (0) | 2023.10.16 |
UNION(CROSS JOIN, FULL OUTER JOIN) (Maria DB) (0) | 2023.10.13 |
서브쿼리 (SubQuery) (Maria DB) (0) | 2023.10.13 |
JOIN - 테이블 끼리 결합 (Maria DB) (1) | 2023.10.12 |