COUNT
- 데이터의 개수를 세는 것
SELECT COUNT(*) FROM books;
- 다른 쓰임 ( + DISTINCT)
- 저자이름 중복제거 해서 count
SELECT COUNT(DISTINCT author_lname) FROM books;
- 다른쓰임 2 ( + LIKE)
- ‘the’ 가 들어간 title의 개수는?
SELECT COUNT(*) FROM books WHERE title LIKE '%the%';
or
SELECT COUNT(title) FROM books WHERE title LIKE '%the%';
Group By의 즐거움
- 동일한 데이터를 각각의 단일 행으로 요약, 집계해준다.
- 다른 함수들과 어울려서 사용된다.
- 평균과 같은 것을 구할 수 있다.
- 예시
- 모든 책을 가져와 출간 연도별로 분류하거나,
- 저자의 성을 기준으로 분류,
- 데이터 베이스에 있는 모든 차를 가져오거나 등
- 적용 코드
SELECT author_fname, author_lname, COUNT(*) FROM books GROUP BY author_lname;
- 적용코드 2
SELECT author_fname, author_lname, COUNT(*) FROM books GROUP BY author_lname, author_fname;
- 적용코드 3
SELECT CONCAT('In ', released_year, ' ', COUNT(*), ' book(s) released') AS year FROM books GROUP BY released_year;
Min , Max
- 테이블의 최솟값 ,최대값을 찾을 수 있다.
- 코드 예제 (Min, Max 작동 방식 동일)
- 전체 테이블에서 가장 빠른 출간 연도를 찾는 것
SELECT Min(released_year) FROM books;
- 가장 작은 페이지수 를 찾는것
SELECT Max(pages) FROM books;
- 만약 가장 긴 title의 이름을 찾고 싶다면 ?
- 이렇게 하면 잘못된 값이 나온다.
- Max와 title이 독립적으로 작동하기 때문에 생긴 문제
SELECT Max(pages), title FROM books;
하위쿼리를 이용
- 단점 : 느리다.
- 괄호안에 있는 쿼리가 먼저 실행되고, 그 밖에 쿼리가 실행된다.
SELECT * FROM books
**WHERE pages = (SELECT Max(pages) FROM books);**
- 괄호 안의 쿼리 후에 실행 모습
SELECT * FROM books
WHERE pages = 634
# 634 => 테이블 내에서 최대 page수
Group By + Min , Max
- 예제
- 각 저자가 자신의 첫번째 책을 출간한 연도를 구하라
- 성이 같고 이름이 다른 두 저자가 있을 수 있기 때문에 GROUP BY author_lname, author_fname 이용
SELECT author_fname, author_lname, Min(released_year) FROM books GROUP BY author_lname, author_fname;
- 성이 같고 이름이 다른 두 저자가 있을 수 있기 때문에 GROUP BY author_lname, author_fname 이용
- 각 저자가 자신의 첫번째 책을 출간한 연도를 구하라
- 깔끔하게 출력하기
SELECT
CONCAT(author_fname, ' ', author_lname) AS author,
MAX(pages) AS 'longest book'
FROM books
GROUP BY author_lname,
author_fname;
데이터 모으기 : Sum
- 모든 데이터를 하나로 모아주는 함수
- 코드
- 테이블내의 모든 페이지의 합을 구해주는 쿼리
SELECT Sum(pages) From books;
GRUP BY + Sum
- 예시
- 각 저자가 쓴 페이지 전부, 즉 페이지의 합을 조회하라
- 어떤 저자가 누적으로 가장 높은 수의 페이지를 썻는지 알 수 있다.
- 코드
SELECT author_fname, author_lname ,Sum(pages) FROM books GROUP BY author_fname, author_lname
데이터의 평균 : AVG
- 여럿을 합친 후 몇개가 합쳐졌는지에 기준해서 그 수로 나눈다.
- 예시 쓰임
- 특정 월에 어떤 상품의 판매 평균을 낸다.
- 데이터베이스 안의 무언가의 평균 가격을 구한다.
- 예시
- 모든 책의 데이터에서 평균 출간 년도를 구해라
SELECT AVG(released_year) FROM books ;
Group By + AVG
- 예시
- 같은 해에 출간된 책의 평균 재고 수량
SELECT released_year,AVG(stock_quantity) FROM books GROUP BY released_year;
'Back-End > DataBase [ MySQL]' 카테고리의 다른 글
[MySql] 선택사항 정교화하기 _DISTINCT, ORDER BY, LIMIT, LIKE (0) | 2022.06.25 |
---|---|
[MySql] 문자열함수 _ CONCAT, SUBSTR, REPLACE, REVERSE, CHAR_LENGTH , UPPER, LOWER (0) | 2022.06.25 |
[MySql] CRUD명령 _Create, Read , Update, Delete (0) | 2022.06.21 |
[MySql] 테이블에 데이터 삽입하기 _ INSERT (0) | 2022.06.18 |
[MySql] 데이터베이스와 테이블 만들기 (0) | 2022.06.16 |
댓글