반응형
혼자 공부하는 SQL 책을 보고 실습한 내용을 정리, 복습이 되길 기대
GROUP BY
SELECT 열
FROM 테이블
WHERE 조건식
GROUP BY 열
HAVING 조건식
ORDER BY 열
LIMIT 숫자
다음과 같은 DB가 있다.(책에서 제공)
BLK는 지갑2개, 맥북 1개, 청바지 3개 총 6개의 물건을 구매
APN는 아이폰1개, 혼공SQL3개, 청바지 1개 총 5개의 물건을 구매했다.
이렇게 일일이 세어야 한다면 MYSQL을 사용하는 의미가 없다.
각 그룹들이 산 물건의 총 개수를 한번에 조회하려면 어떻게해야 할까?
집계함수
함수명 | 설명 |
SUM() | 합계 |
AVG() | 평균 |
MIN() | 최소값 |
MAX() | 최대값 |
COUNT() | 개수 |
COUNT(DISTINCT) | 개수를 세는데 중복은 1개만 인정 |
각 그룹들이 산 물건의 총 개수를 구하기 위해 SUM()을 이용하면 될 것 같다.
각 그룹들별로 표시하기 위해 GROUP BY를 이용해보자.
SUM()안에 덧셈, 곱셈등도 넣을 수 있다.
...다른 집계 함수들은 생략함...
HAVING
위의 테이블에서 구매비용이 천원이 넘는 것들만 조회해보자.
select mem_id "그룹이름", SUM(amount) "구매한 물건들의 개수", SUM(amount*price) "구매비용"
from buy
where sum(price*amount) > 1000
group by mem_id;
아쉽게도 에러가 뜬다.
이유는 GROUP BY 절에는 HAVING으로 조건문을 사용하기 때문! 즉 WHERE절과 GROUP BY는 함께할 수 없다.
반응형
'개발 > Database' 카테고리의 다른 글
MySQL 데이터 형식 (0) | 2022.02.25 |
---|---|
데이터 변경을 위한 SQL 쿼리문 : INSERT, UPDATE, DELETE (0) | 2022.02.13 |
ORDER BY (0) | 2022.02.09 |
기본적인 WHERE 절 (0) | 2022.02.09 |
기본적인 쿼리문 간단 정리(CRUD) (0) | 2022.02.05 |