기록과 정리의 공간

[MySQL] (20200830) TIL 본문

DATABASE/MySQL

[MySQL] (20200830) TIL

딸기맛도나쓰 2020. 8. 30. 21:29

TIL - 인프런 강의를 듣고 공부한 내용을 정리(강의 링크)

  • 공부한 내용
    1. COUNT()
    2. SUM, AVG, MIN, MAX()
    3. DISTINCT, AS
    4. 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;

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;

'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