Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- eclipse
- mysql
- rdbms
- jQuery
- mybatis
- PYTHON
- 자바
- javascript
- 백준
- 에러
- sql
- 파이썬
- java
- 링크
- 웹프로그래밍
- 데이터베이스
- TIL
- 자바스크립트
- 이클립스
- 플라스크
- spring
- Oracle
- Git
- database
- flask
- BOJ
- 오라클
- db
- 알고리즘
- 스프링
Archives
- Today
- Total
기록과 정리의 공간
[MySQL] (20200830) TIL 본문
TIL - 인프런 강의를 듣고 공부한 내용을 정리(강의 링크)
- 공부한 내용
- COUNT()
- SUM, AVG, MIN, MAX()
- DISTINCT, AS
- GROUP BY
- 이 글에서 크롤링으로 DB에 저장한 데이터들을 바탕으로 실습.
1. COUNT
-
COUNT() : 검색 결과의 row 수를 가져올 수 있는 SQL 문법.
-
예제) items 테이블의 전체 row수 구하기
SELECT count(*) FROM items;
-
예제) items 테이블에서 ori_price 필드 값이 있는 row수 출력하기(ori_price 필드 값이 비어있는 데이터는 카운트하지 않는다.)
SELECT COUNT(ori_price) FROM items;
-
2. SUM(), AVG(), MAX(), MIN()
-
순서대로 컬럼 값의 합계, 평균, 최대 컬럼 값, 최소 컬럼 값을 구함
-
예제) items 테이블에서 ori_price컬럼의 평균 값 구하기
SELECT AVG(ori_price) from items;
-
3. DISTINCT, AS
-
DISTINCT : 특정 컬럼 값 출력 시, 중복된 값은 출력하지 않는다.
- 예제) 판매자 목록 출력하기
SELECT DISTINCT provider FROM items;
- 예제) 판매자 목록 출력하기
-
AS : 특정 결과 값의 이름을 변경할 때 사용한다.
- 예제) COUNT(*)를 total_count로 이름 변경하여 출력하기
SELECT COUNT(*) AS total_count FROM items;
- 예제) COUNT(*)를 total_count로 이름 변경하여 출력하기
4. GROUP BY / HAVING절
-
GROUP BY : 그룹을 지어서 데이터를 분석하고자 할 때 사용한다.
-
1, 2번의 함수들과 함께 자주 사용되어 여러 가지 값을 구할 수 있다.
-
예제) items 테이블에서 각 판매자 별로 몇 개의 상품이 등록되어 있는 지 구하기
SELECT provider, COUNT(*) FROM items GROUP BY provider;
-
-
HAVING 절 : 집계 함수(COUNT, SUM, AVG 함수 등등)를 가지고 조건 비교를 할 때 사용한다. GROUP BY절과 함께 사용한다.
- 예제1) items 테이블에서 100개 이상의 상품을 판매하는 판매자만 구하기
SELECT provider, COUNT(*) FROM items GROUP BY provider HAVING COUNT(*) >= 100;
- HAVING절을 포함한 복합 검색_예제2) '스마일배송'판매자를 제외한 판매자들 중 100개 이상의 상품을 판매하는 판매자들을 판매물품 개수가 많은 순으로 하여 출력하기 : GROUP BY, HAVING절과 함께 WHERE절, ORDER BY절을 사용해야 한다. 이 때 작성 순서가 중요하다. GROUP BY,HAVING 절은 WHERE절과 ORDER BY절 사이에 위치하게 된다.
SELECT provider, COUNT(*) AS total_count FROM items WHERE provider != '스마일배송' GROUP BY provider HAVING COUNT(*) >= 100 ORDER BY provider DESC;
- 예제1) items 테이블에서 100개 이상의 상품을 판매하는 판매자만 구하기
'DATABASE > MySQL' 카테고리의 다른 글
[MySQL] 다중 PK로 변경하기 (0) | 2020.11.23 |
---|---|
[MySQL] (20200902) TIL (0) | 2020.09.02 |
[MySQL] (20200829) TIL (0) | 2020.08.30 |
[MySQL] (20200827) TIL (0) | 2020.08.27 |
[MySQL] (20200820) TIL (0) | 2020.08.20 |
Comments