Introduction
이번 장은 테이블에 있는 데이터를 집계하는 방법을 알려 준다. SQL 절은 어떤 데이터를 DB에서 뽑아 올건지 결정한다. 라는 맥락에서 이해 한다면, "이번 장은 테이블 데이터를 요약해서 뽑아 오는 것이겠군." 이라고 쉽게 생각 할 수 있을 것이다.
Content
1. 무엇을 테이블 집계라 하는가?
"있는 것을 새는 것"을 집계라 한다. 그러므로 테이블 집계란 테이블에 있는 것을 원하는 유형으로 새는 것을 뜻한다. 원하는 유형이란? 밑에서 설명한다.
2. 어디에 테이블 집계를 사용 하는가?
테이블의 전체 갯수는 몇개 일까? 테이블에 기록된 사람들 중 제일 수학 공부를 제일 잘하는 사람은 누구일까? 테이블에 기록된 수학 점수 평균은 얼마일까? 등, 여러 데이터를 사용한 계산 값이 필요할 때 테이블 집계를 사용 한다.
3. 어떻게 테이블 집계을 사용 하는가?
테이블 집계는 집계 함수를 사용 하여, 집계한다. 집계 함수는 기본적으로 평균, 개수, 최대값, 최소값, 열 값의 합계 등등 유형이 있고, 각각의 DBMS에 더 많은 집계 함수들이 있다. 나는 PostgreSQL 을 이용하므로, PostgreSQL 집계 함수 메뉴얼 페이지를 링크를 걸겠다.
검색어 : aggregate function PostgreSQL 8.4
관련링크 : http://www.postgresql.org/docs/8.4/static/functions-aggregate.html
3-1 AVG 함수 사용 방법
avg는 열의 평균을 구하기 위하여 사용 한다. 사용법은 다음과 같다. 주의 해야 할 점은 숫자 칼럼(열)만 입력 될 수 있으며, NULL 인 레코드는 계산하지 않고 넘어 간다는 것을 기억해야 한다.
검색어 : avg sql
관련링크 : http://www.w3schools.com/SQL/sql_func_avg.asp
3-2 COUNT 함수 사용 방법
count 함수는 열의 개수를 구하기 위하여 사용 한다. NULL 값이라도 개수로 포함해야 할 땐 count(*) 를 지정해 주면 된다.
검색어 : sql count
관련링크
http://sql.1keydata.com/kr/sql-count.php
http://www.w3schools.com/SQL/sql_func_count.asp
3-3 MIN 함수 사용 방법
min 함수는 열에서 제일 작은 값을 구할 때 사용 한다. 마찬가지로 NULL은 무시되고, 문자, 숫자, 시간 등등을 인자로 넣을 수 있다. DBMS마다 다를 수 있으니, 메뉴얼을 살펴 보는게 좋겠다.
검색어 : sql min
관련링크 : http://www.w3schools.com/SQl/sql_func_min.asp
3-4 MAX 함수 사용 방법
min 과 동일하다.
검색어 : sql max
관련링크 : http://www.w3schools.com/SQl/sql_func_max.asp
3-5 SUM 함수 사용 방법
sum 함수는 열에 있는 모든 데이터를 더할 때 사용 한다. NULL은 무시된다. 정수만 된다. DBMS마다 다를 수 있으니 메뉴얼 참조하는게 좋겠다.
검색어 : sql sum
관련링크 : http://www.w3schools.com/SQl/sql_func_sum.asp
4. 이것 외로 더 알아야 할 사항이 있는가?
있다. 바로 DISTINCT 절이다. 고유한 값만 집계하고자 할 때 사용 한다. 어떻게 사용하는가? 다음 SQL 절을 보라.
각 SQL 절을 보고, 결과를 내면서 어떻게 변화 되는지 보면, "고유한 값"만 집계 할 수 있는 것을 알 수 있다. 이 밖에도 다양한 사용 방법이 있다. DISTINCT 절 뒤에 오는 칼럼(열)이 고유한 것만 걸러내며, 칼럼(열)이 여러개일 경우, 그 칼럼(열)들을 하나로 보고, 이것이 고유한지 평가하게 된다. 링크를 통해 어떻게 변화하는지 관찰하면 쉽게 알 수 있을 것이다.
검색어 : sql DISTINCT
관련링크
http://sql.1keydata.com/kr/sql-distinct.php
http://www.sql-tutorial.com/sql-distinct-sql-tutorial/
팁
집계 함수나 기타 다른 이유로 새롭게 보이는 열에 별칭(별명)을 줄 경우, 기존 테이블에 없는 칼럼(열) 이름을 선택하는게 좋다. 예기치 않은 오류가 날 수 있기 때문이다.
Digression
모든것을 다 정리할 필요는 없다. 정리되어 있는 것을 링크를 거는 것도(이) 필요하다.(편하다)
'책 정리 > 하루 10분씩 핵심만 골라 마스터하는 SQL' 카테고리의 다른 글
14장, 쿼리의 결합 : UNION 으로 쿼리 결합하기 (0) | 2010.02.02 |
---|---|
13장, 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN (360) | 2010.01.31 |
12장, 테이블 조인 : INNER JOIN (0) | 2010.01.31 |
11장, 하위 쿼리 사용 : 서브 쿼리 사용 : Sub Query, 두 쿼리의 결합 (719) | 2010.01.31 |
10장, 데이터 그룹화 : 테이터를 그룹화 한다는 것은 무슨 뜻인가? : GROUP BY (0) | 2010.01.30 |
8장, 데이터 조작 함수 사용하기 : SQL에서 함수를 이용하기 (0) | 2010.01.29 |
7장, 계산 필드 만들기 : AS (0) | 2010.01.28 |
6장, 와일드카드를 사용한 필터링 : 문자열 패턴으로 필터링 하기 (0) | 2010.01.28 |
5장, 고급 데이터 필터링 : WHERE 조합법 (0) | 2010.01.28 |
4장, 데이터 필터링 : WHERE 사용 법 (0) | 2010.01.22 |
최근댓글