database.sarang.net
UserID
Passwd
Database
ㆍDBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DBMS Tutorials 108 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 108
SQL 함수의 모든 것 - aggregate function
작성자
정재익(advance)
작성일
2001-12-03 00:19
조회수
11,393

원본 출처 : http://korea.internet.com/channel/content.asp?nid=17481&cid=359#start

 

AVG

 

사용영역 : 평균값을 구할 때 사용한다.

사용가능 DB : Oracle, ISO/ANSI, SQL Server, MS Access

 

문법

AVG ( [ ALL | DISTINCT ] expression )

 

 

설명

그룹내 평균값을 구할 때 사용한다.

DISTINCT 인수를 사용하면 중복을 제외하고 평균을 구한다. ALL을 지정하면 모든 값은 평균값을 계산하며 NULL값은 제외한다.

인수를 지정하지 않을 경우 기본값으로 ALL이 지정된다.

 

기본예제

A.주소록의 평균 연령을 구한다.

 

SELECT AVG(연령) FROM 주소록
-------(결과출력)
21

B.주소록의 중복 연령을 제거한 평균을 구한다.
SELECT AVG(DISTINCT 연령) FROM 주소록
-------(결과출력)
22

C.성별 평균 연령을 구한다.
SELECT 성별, AVG(연령) FROM 주소록 GROUP BY 성별
------- -------(결과출력)
여      25
남      19

 

 

COUNT

 

사용영역 : 행의 수를 구할 때 사용한다.

사용가능 DB : Oracle, ISO/ANSI, SQL Server, MS Access

 

문법

COUNT ( [ ALL | DISTINCT ] expression )

 

 

설명

그룹내 행(레코드)의 수를 구할 때 사용한다.

단순히 행의 수를 구할때는 인수에 "*"를 지정하면 된다.

인수에 특정 열을 지정하면 지정된 열이 NULL 값인 것을 제외하고 값을 리턴한다.

"COUNT(DISTINCT A열)" 수식을 사용하면 A열의 중복된 값을 제외하고 값을 리턴한다.

인수에 아무것도 지정하지 않은 경우 ALL로 간주한다.

 

기본예제

A. 주소록의 모든 행(레코드)의 수를 출력한다.

 

SELECT COUNT(*) FROM 주소록
-------(결과출력)
6

B. 연령 열(필드)의 행의 수를 출력한다.
SELECT COUNT(연령) FROM 주소록
-------(결과출력)
5

C. 연령열의 중복된 레코드를 제거하고 행의 수를 출력한다.
SELECT COUNT(DISTINCT 연령) FROM 주소록
-------(결과출력)
4

 

 

GROUPING

 

사용영역 : 집계행을 판단하여 값을 반환한다.

사용가능 DB : Oracle, SQL Server

 

문법

GROUPING(열 이름)

 

 

설명

집계행을 판단하여 값을 반환한다.

"ROLLUP" 또는 "CUBE" 옵션을 붙여 GROUP BY를 실행하면, 집계행이 부가된다.

집계행 GROUP BY를 지정한 열 정보에는 NULL이 반환된다.

Oracle 8i, SQL Server 7.0 이상에서 지원한다.

 

기본예제

A. Oracle 에서는

 

SELECT 성별, SUM(연령), GROUPING(성별)
FROM 주소록 GROUP BY ROLLUP(성별)

-------(결과출력)
여	51	0
남	55	0

B. SQL Server 에서는

SELECT 성별, SUM(연령), GROUPING(성별)
FROM 주소록 GROUP BY 성별 WITH ROLLUP

-------(결과출력)
여	51	0
남	55	0

 

 

MAX

 

사용영역 : 최대값을 구한다.

사용가능 DB : Oracle, ISO/ANSI, SQL Server, MS Access

 

문법

MAX ( [ ALL | DISTINCT ] expression )

 

 

설명

그룹내 최대값을 구한다.

그룹내 최대값을 구하며, GROUP BY 구문을 지정하지 않으면 전체가 하나의 그룹으로 인식되어 전체에서 구한다.

수치형, 문자열형, 날짜형에 대해 최대값을 구할 수 있다.

MAX는 Null 값을 무시한다.

문자 열에 대해 MAX는 데이터 정렬 순서에서 가장 높은 값을 찾는다.

 

기본예제

A. 연령 열(필드)에서 최대값을 구한다.

 

SELECT MAX(연령) FROM 주소록
-------(결과출력)
32

B. 연령 열(주소)에서 최대값을 구한다.
SELECT COUNT(주소) FROM 주소록
-------(결과출력)
광주

C. 성별로 그룹화 한 다음 그룹별 연령의 최대값을 구한다.
SELECT 성별, MAX(연령) FROM 주소록 GROUP BY 성별
-------(결과출력)
여	32
남 	21

 

 

MIN

 

사용영역 : 최소값을 구한다.

사용가능 DB : Oracle, ISO/ANSI, SQL Server, MS Access

 

문법

MIN ( [ ALL | DISTINCT ] expression )

 

 

설명

그룹내 최소값을 구한다.

그룹내 최소값을 구하며, GROUP BY 구문을 지정하지 않으면 전체가 하나의 그룹으로 인식되어 전체에서 구한다.

수치형, 문자열형, 날짜형에 대해 최대값을 구할 수 있다.

MIN는 Null 값을 무시한다.

문자 열에 대해 MAX는 데이터 정렬 순서에서 가장 낮은 값을 찾는다.

 

기본예제

A. 연령 열(필드)에서 최소값을 구한다.

 

SELECT MIN(연령) FROM 주소록
-------(결과출력)
32

B. 연령 열(주소)에서 최소값을 구한다.
SELECT MIN(주소) FROM 주소록
-------(결과출력)
광주

C. 성별로 그룹화 한 다음 그룹별 연령의 최소값을 구한다.
SELECT 성별, MIN(연령) FROM 주소록 GROUP BY 성별
-------(결과출력)
여	32
남 	21

 

 

STDDEV

 

사용영역 : 표준편차값을 구한다.

사용가능 DB : Oracle

 

문법

STDDEV (열 이름)

 

 

설명

표준편차값을 구한다.

그룹내 표준편차값을 구하며, GROUP BY 구문을 지정하지 않으면 전체가 하나의 그룹으로 인식되어 전체에서 구한다.

문자열형, 날짜형은 지원하지 않으며, 수치형에 대해 표준편차를 구할 수 있다.

 

기본예제

A. 연령 열(필드)에서 표준편차값을 구한다.

 

SELECT STDDEV(연령) FROM 주소록
-------(결과출력)
6.23145

B. 성별 연령 표준편차를 구한다.
SELECT 성별, STDDEV(연령) FROM 주소록 GROUP BY 성별
-------(결과출력)
여	9.12341
남 	2.30172

 

 

STDDEV

 

사용영역 : 표준편차값을 구한다.

사용가능 DB : SQL Server, MS Access

 

문법

STDEV (열 이름)

 

 

설명

표준편차값을 구한다.

그룹내 표준편차값을 구하며, GROUP BY 구문을 지정하지 않으면 전체가 하나의 그룹으로 인식되어 전체에서 구한다.

문자열형, 날짜형은 지원하지 않으며, 수치형에 대해 표준편차를 구할 수 있다.

 

기본예제

A. 연령 열(필드)에서 표준편차값을 구한다.

 

SELECT STDEV(연령) FROM 주소록
-------(결과출력)
6.23145

B. 성별 연령 표준편차를 구한다.
SELECT 성별, STDEV(연령) FROM 주소록 GROUP BY 성별
-------(결과출력)
여	9.12341
남 	2.30172

 

 

STDDEVP

 

사용영역 : 그룹 내의 모든 값을 모집단으로 하는 표준편차값을 구한다.

사용가능 DB : SQL Server, MS Access

 

문법

STDEV (열 이름)

 

 

설명

그룹 내의 모든 값을 모집단으로 하는 표준편차값을 구한다.

 

기본예제

 

A. 연령 열(필드)에서 표준편차값을 구한다.
SELECT STDEVP(연령) FROM 주소록
-------(결과출력)
5.60000032

B. 성별 연령 표준편차를 구한다.
SELECT 성별, STDEV(연령) FROM 주소록 GROUP BY 성별
-------(결과출력)
여	6.5
남 	1.87634

C. titles 테이블에 있는 모든 로열티 지불 값의 모집단에 대한 표준 편차를 구한다.

SELECT STDEVP(royalty)
FROM titles

 

 

SUM

 

사용영역 : 합계를 구할 때 사용한다.

사용가능 DB : Oracle, ISO/ANSI, SQL Server, MS Access

 

문법

SUM ( [ ALL | DISTINCT ] expression )

 

 

설명

그룹내 합계를 구할 때 사용한다.

DISTINCT 인수를 사용하면 중복을 제외하고 합계를 구한다. ALL을 지정하면 모든 값의 합계를 계산하며 NULL값은 제외한다.

인수를 지정하지 않을 경우 기본값으로 ALL이 지정된다.

 

기본예제

 

A.주소록의 연령 합계를 구한다.
SELECT SUM(연령) FROM 주소록
-------(결과출력)
21

B.주소록의 중복 연령을 제거한 합계를 구한다.
SELECT SUM(DISTINCT 연령) FROM 주소록
-------(결과출력)
22

C.성별 연령 합계를 구한다.
SELECT 성별, AVG(연령) FROM 주소록 GROUP BY 성별
------- -------(결과출력)
여      25
남      19

 

 

VAR

 

사용영역 : 분산을 구한다.

사용가능 DB : SQL Server, MS Access

 

문법

VAR ( expression )

 

 

설명

그룹내 분산을 구한다.

VAR가 SELECT 문의 모든 항목에서 사용되는 경우, 결과 집합의 각 값은 계산에 포함된다. VAR와 함께 사용할 수 있는 것은 숫자 열뿐이다. Null 값은 무시된다.

 

기본예제

다음은 titles 테이블의 모든 royalty 값에 대한 분산을 반환하는 예제이다.

 

사용DB : SQL Server pubs
SELECT VAR(royalty)
FROM titles

 

 

VARIANCE

 

사용영역 : 분산을 구한다.

사용가능 DB : Oracle

 

문법

VARIANCE ( expression )

 

 

설명

그룹내 분산을 구한다.

VARIANCE가 SELECT 문의 모든 항목에서 사용되는 경우, 결과 집합의 각 값은 계산에 포함된다. VARIANCE와 함께 사용할 수 있는 것은 숫자 열뿐이다. Null 값은 무시된다.

 

기본예제

 

다음은 titles 테이블의 모든 royalty 값에 대한 분산을 반환하는 예제이다.

SELECT VARIANCE(royalty)
FROM titles

 

 

VARP

 

사용영역 : 분산을 구한다.

사용가능 DB : SQL Server

 

문법

VARP ( expression )

 

 

설명

그룹내 분산을 구한다.

VARP가 SELECT 문의 모든 항목에서 사용되는 경우, 결과 집합의 각 값은 계산에 포함된다. VARP와 함께 사용할 수 있는 것은 숫자 열뿐이다. Null 값은 무시된다.

 

기본예제

다음은 titles 테이블의 모든 royalty 값에 대한 분산을 반환하는 예제이다.

SELECT VARP(royalty)
FROM titles
[Top]
No.
제목
작성자
작성일
조회
137DB 테이블 디자인에 도전하기 (2)
정재익
2001-12-07
6381
136DB 테이블 디자인에 도전하기 (1)
정재익
2001-12-07
11253
132연관 규칙과 의사결정트리를 이용한 패턴 탐사
정재익
2001-12-06
5651
108SQL 함수의 모든 것 - aggregate function
정재익
2001-12-03
11393
107ODBC 와 JDBC 를 이용한 데이터로의 접근 (IV)
정재익
2001-12-02
4802
104ODBC 와 JDBC 를 이용한 데이터로의 접근 (III)
정재익
2001-12-01
6595
98ODBC 와 JDBC 를 이용한 데이터로의 접근 (II)
정재익
2001-11-28
7435
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다