일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Machine Learning Advanced
- 엘리스
- DilatedNet
- 스택
- 파이썬
- DFS
- Recsys-KR
- 프로그래머스
- hackerrank
- 코딩테스트
- Object Detection
- 나는 리뷰어다
- 나는리뷰어다
- 협업필터링
- Segmentation
- 추천시스템
- 3줄 논문
- Semantic Segmentation
- 알고리즘
- 큐
- eda
- Image Segmentation
- 튜토리얼
- TEAM EDA
- MySQL
- 한빛미디어
- pytorch
- TEAM-EDA
- Python
- 입문
- Today
- Total
TEAM EDA
[SQL 기초] 3장. SQL과 함수 본문
본 자료는 Elice Academy에서 진행한 SQL 기초라는 과목을 정리한 자료입니다.
목차
- COUNT
- LIMIT
- SUM과 AVG
- MIN와 MAX
1. COUNT
COUNT란 검색한 결과의 데이터의 개수를 가져오는 명령어입니다. 예를 들어, 책 정보를 저장하는 book 테이블에서 전체 책 수를 조회해보려고 할 때 사용할 수 있습니다.
문법으로는 SELECT COUNT(컬럼) FROM 테이블입니다.
만일 검색할 데이터에 *을 입력하면 모든 데이터가 검색이 됩니다. (전체의 row의 수가 출력이 됩니다.
※참고
컬럼 자리에 *을 넣을 경우 모든 컬럼에 대한 값을 볼 수 있습니다. count의 경우 NULL은 개수에 포함되지 않습니다.
실습 1. 데이터 수 카운트하기
문제 : 도서관의 전체 책의 수를 조회해 봅시다. 하지만 select를 통해 전체를 출력하고 세어보는 것은 위험합니다. 특히 개수가 많다면 중간에 실수할 가능성이 높습니다. 따라서 앞서 배운 count 함수를 이용해 조회하도록 합시다.
SELECT * FROM book;
SELECT COUNT(*) FROM book;
2. LIMIT
출력하고자 하는 데이터의 개수를 제한하는 명령어입니다. 데이터의 수가 많으면 불러오는데 너무 많은 시간이 걸리므로 데이터를 빠르게 가져올 때 사용합니다. 예를 들어, book 테이블에서 3권의 책만을 출력하는 경우를 생각할 수 있습니다.
문법으로는 SELECT * FROM 테이블 LIMIT 제한할 숫자를 사용합니다.
예시) people 테이블의 로우를 두 번째 로우부터 조회하되 7개까지만 출력하는 쿼리
SELECT * FROM people LIMIT 1, 7
실습 2. 데이터 수 제한하기
문제 : 엘리스 도서관에 책이 몇 권 더 추가로 들어왔습니다. 이제 도서관에는 책을 한 번에 조회하면 알아볼 수 없을 정도로 많아졌습니다. 혼란스러운 엘리스를 위해 select문 뒤에 limit를 덧붙여 책 정보 5개 만을 조회해보세요!
-- book테이블의 모든 컬럼을 조회해 봅시다. 단 5권만 잘라서 출력해야 합니다.
SELECT * FROM book LIMIT 5
3. SUM과 AVG
SUM은 컬럼의 값을 더하는 함수입니다. 예를 들어, 중간고사 성적이 담긴 grade 테이블에서 학생들의 수학 성적을 모두 더할 때 사용할 수 있습니다.
기본 문법으로는 SELECT SUM(컬럼) FROM 테이블입니다.
AVG은 컬럼의 평균을 더하는 함수입니다. 예를 들어, 중간고사 성적이 담긴 grade 테이블에서 학생들의 성적을 평균 낼 때 사용할 수 있습니다.
기본 문법으로는 SELECT AVG(korean), AVG(english), AVG(math) FROM 테이블입니다.
※참고
결측치의 경우는 값이 빠진 경우이므로 자동적으로 제외하고 계산됩니다.
실습 3. 데이터 평균 구하기
문제 : grade 테이블 안에는 이번 중간고사에서 본 성적이 들어 있습니다. 이 테이블을 이용해 과목별 평균점수를 구해봅시다. 이번에도 직접 계산하는 것은 어려우니 avg 함수를 이용해 봅시다. 모든 국어 점수의 평균, 모든 영어 점수의 평균, 모든 수학 점수의 평균 총 세 개의 값을 구해봅시다.
SELECT AVG(korean), AVG(english), AVG(math) FROM grade;
4. MAX와 MIN
MAX은 컬럼의 최댓값을 구하는 함수입니다. 예를 들어, grade 테이블에 저장된 국어 점수 중에서 가장 높은 점수가 몇 점인지 조회해볼 때 사용할 수 있습니다.
기본 문법으로는 SELECT MAX(컬럼) FROM 테이블입니다.
MIN은 컬럼의 최솟값을 구하는 함수입니다. 예를 들어, grade 테이블에 저장된 영어 점수 중에서 가장 낮은 점수가 몇 점인지 조회해볼 때 사용할 수 있습니다.
기본 문법으로는 SELECT MIN(컬럼) FROM 테이블입니다. WHERE 조건절을 이용해서 원하는 데이터의 최솟값을 구할 수도 있습니다.
※참고
MIN, MAX 모두 수치형뿐만 아니라 문자형도 계산할 수 있습니다.
실습 4. 최댓값 찾기
문제 : 이번 국어시험은 아주 어려웠습니다 그래서 엘리스는 100점을 맞은 친구가 없을 거라 생각했습니다. 그 생각이 맞았는지 확인하기 위해 국어시험에서 가장 높은 점수가 몇 점이었는지 조회해 봅시다. select문에 max함수를 이용해 조회하면 됩니다.
-- 가장 높은 국어성적을 조회합니다.
SELECT MAX(korean) FROM grade
'EDA Study > SQL' 카테고리의 다른 글
[HackerRank] Basic Select : Select All (0) | 2021.02.07 |
---|---|
[SQL 기초] 5장. 실력 테스트 (0) | 2020.03.19 |
[SQL 기초] 4장. 다수의 테이블 제어하기 (0) | 2020.03.19 |
[SQL 기초] 2장. 데이터를 제어하는 DML (0) | 2020.03.19 |
[SQL 기초] 1장. SQL 시작하기 (5) | 2020.03.19 |