[MySQL] SQL 문법 정리 (5) : SELECT - ORDER BY / GROUP BY / 집계함수
2023. 11. 16. 14:37
반응형
사용 데이터
1. ORDER BY
결과 집합을 정렬하는 데 사용되며, 지정된 열(또는 열의 목록)을 기준으로 오름차순(ASC) 또는 내림차순(DESC)으로 정렬
도서를 이름순으로 검색하시오.
select * from book order by bookname asc;
도서를 가격의 내림차순으로 검색하시오. 만약 가격이 같다면 출판사의 오름차순으로 검색한다.
select * from book order by price desc, publisher asc;
2. GROUP
2-1. 집계함수
집계 함수는 데이터베이스에서 데이터들의 집합에 대한 계산을 수행하는 함수이다. 이러한 함수들은 GROUP BY 절과 함께 사용되는 경우가 많다.
COUNT(): 그룹 내의 행 수를 계산. 주로 특정 열이나 테이블 전체의 행 수를 세는 데 사용된다.
SUM(): 그룹 내의 숫자 열의 합계를 계산.
AVG(): 그룹 내의 숫자 열의 평균을 계산.
MIN(): 그룹 내의 숫자 열에서 최솟값을 산출.
MAX(): 그룹 내의 숫자 열에서 최댓값을 산출.
주문의 총 건수를 구하시오
select count(*) from orders;
고객이 주문한 도서의 총 판매액을 구하시오.
select sum(saleprice) as '총매출' from orders;
고객이 주문한 도서의 총 판매액, 평균값, 최저가, 최고가를 구하시오.
select sum(saleprice) as Total, avg(saleprice) as Average,
min(saleprice) as Minimum, max(saleprice) as Maximum
from orders;
2-2. GROUP BY
특정 열의 값에 따라 결과를 그룹화하는 데 사용되며, 그룹화된 각 그룹에 대한 집계 함수(예: COUNT, SUM, AVG)를 사용하여 그룹 내에서 계산을 수행할 수 있다.
고객별로 주문한 도서의 총 수량과 총 판매액을 구하시오.
select custid, sum(saleprice) as '총액', count(*) as '도서수량'
from orders
group by custid;
책 별로 판매된 총 수량과 총 판매액을 구하시오.
select bookid, count(*), sum(saleprice)
from orders
group by bookid;
2-3. HAVING
HAVING 절은 GROUP BY 절과 함께 사용되며, 특정 조건을 만족하는 그룹을 필터링하는 데 사용된다. 이 절은 집계 함수와 함께 그룹화된 결과에 대한 조건을 지정한다.
책 번호(ID)가 5 이상인 책들의 판매된 총 수량과 총 판매액을 구하시오.
select bookid, count(*), sum(saleprice)
from orders
group by bookid
having bookid >= 5;
고객별로 주문한 도서의 총 판매액이 30,000원 이상인 도서들의 총 수량과 판매액을 구하시오.
select custid, sum(saleprice) as '총액', count(*) as '도서수량'
from orders
group by custid
having sum(saleprice) >= 30000;
반응형
'Database > SQL' 카테고리의 다른 글
[MySQL] SQL 문법 정리 (7) : Natural JOIN과 Cartesian Product (0) | 2024.01.17 |
---|---|
[MySQL] SQL 문법 정리 (6) : SET Operation (집합 연산) (0) | 2024.01.17 |
[MySQL] SQL 문법 정리 (4) : SELECT - FROM/WHERE (0) | 2023.11.05 |
[MySQL] SQL 문법 정리 (3) : ALTER / DROP TABLE (0) | 2023.11.05 |
[MySQL] SQL 문법 정리 (2) : CREATE TABLE (자료형, 관계(기본키, 외래키), 제약 조건) (1) | 2023.11.02 |