SlideShare a Scribd company logo
1 of 9
SQL기초강좌
집합함수 (1)
(Aggreation Function)
SQL기초강좌_집합함수(Aggreation Function)
집합함수
행(ROW)들의 집합에 대해 연산을 하는 것이므로 행들의 집합 수 만큼 결과가 반환된
다. 테이블은 GROUP BY절에 의해 그룹으로 나누어 질 수 있으며 그룹함수
(Aggregation Function)는 SELECT문과 HAVING절에 사용 되어 질 수 있다. HAVING절
은 GROUP BY 되는 함수에 조건을 주기 위해서 사용 되며 WHERE 절을 이용해서는 안
된다.(그룹핑 칼럼에 조건을 주는 경우는 WHERE절, HAVING절 모두에서 사용가능 하
다.)
GROUP BY절을 이용하여 한 테이블에서 행들을 원하는 그룹으로 나누는 것이 가능하
며 칼럼 명을 집합 함수와 SELECT절에 이용하고자 한다면 GROUP BY 뒤에 칼럼을 추
가 해야 한다. 즉 SELECT절에 그룹함수가 오면 SELECT절의 나머지 칼럼은 GROUP BY
절에 나타나야 한다. 또한 GROUP BY절에는 칼럼의 위치 순서 표기(1, 2, 3,,,)나 칼럼
Alias는 사용 할 수 없다.
SQL기초강좌_집합함수(Aggreation Function)
집합함수
[형식]
SELECT column, group function
FROM TABLE
[WHERE condition]
[GROUP BY [ROLLUP | CUBE] group by expression]
[HAVAING group condition]
[ORDER BY columns]
AVG([DISTINCT|ALL n] : n의 평균값을 반환한다.
SQL> create table sawon (
2 name varchar2(10) not null,
3 sal number(8,0),
4 buseo varchar2(10)
5 );
테이블이 생성되었습니다.
SQL> insert into sawon values ('가길동',2000000,'영업부');
SQL> insert into sawon values ('나길동',3000000, '영업부');
SQL> insert into sawon (name, buseo) values ('다길동','영업부');
SQL> insert into sawon values ('라길동',1000000,'관리부');
SQL> insert into sawon values ('마길동',2000000, '관리부');
SQL기초강좌_집합함수(Aggreation Function)
집합함수
--5명의 사원을 이름, 급여, 부서를 입력했다. “다길동” 사원은 급여를 입력하지 않았음
에 유의하자. 입력하지 않았으므로 sal 칼럼은 NULL 값으로 채워져 있을 것이다. NULL
값은 아무것도 없다는 뜻이며 어떠한 연산(+,-,*,/)을 하여도 NULL이 된다. NULL 칼럼
인지를 알기 위해서도 마찬가지로 IS NULL을 사용해서 확인 해야 한다.
SQL>commit;
커밋이 완료되었습니다.
SQL> select name, sal, buseo from sawon;
NAME SAL BUSEO
---------- ---------- ----------
가길동 2000000 영업부
나길동 3000000 영업부
다길동 영업부
라길동 1000000 관리부
마길동 2000000 관리부
SQL기초강좌_집합함수(Aggreation Function)
집합함수
--지금 입력한 5명의 사원들의 급여 평균은 얼마일까? 총합은 8000000원 이며 5명이므로
1600000 정도가 되리라고 생각이 들것이다. 아래를 보자.
SQL> select avg(sal) from sawon;
AVG(SAL)
----------
2000000
--sal 칼럼이 NULL인 “다길동”은 계산에서 제외 된 것이다. 즉 NULL인 칼럼은 계산을 위한 대상에
서 제외된 것 이다. 다음 예문은 이를 해결 한 것이다.
SQL> select avg(nvl(sal, 0)) from sawon;
AVG(NVL(SAL,0))
---------------
1600000
SQL기초강좌_집합함수(Aggreation Function)
집합함수
--아래는 부서별로 GROUP BY하여 부서별 평균을 출력 하는 예문이다.
SQL> select buseo, avg(sal) from sawon
2 group by buseo;
BUSEO AVG(SAL)
---------- ----------
관리부 1500000
영업부 2500000
--SELECT절의 어떤 칼럼 이나 표현식도 집합 함수가 아니라면 GROUP BY절에 나타나야 한다.
SQL> select buseo, avg(sal) from sawon;
select buseo, avg(sal) from sawon
*
1행에 오류:
ORA-00937: 단일 그룹의 그룹 함수가 아닙니다
SQL기초강좌_집합함수(Aggreation Function)
집합함수
--아래는 부서별로 GROUP BY하여 부서별 평균을 출력 하는데 그 평균이 2000000 보
다 큰 부서와 그 평균을 출력하는 예문 이다. 그룹함수에 조건을 줄때는 반드시
HAVING절을 써야한다.
SQL> select buseo, avg(sal) from sawon
2 group by buseo
3 having avg(sal) > 2000000;
BUSEO AVG(SAL)
---------- ----------
영업부 2500000
SQL기초강좌_집합함수(Aggreation Function)
집합함수
--아래는 EMP 테이블에서 부서별로 급여의 최대를 출력하는데, 부서코드에 따라 오름
차순으로 표시 하는 예문 이다.
SQL> select deptno, max(sal) "급여 최대(부서)"
2 from emp
3 group by deptno
4 order by deptno;
DEPTNO 급여 최대(부서)
---------- -----------------
10 5000
20 3000
30 2850
SQL기초강좌_집합함수(Aggreation Function)
집합함수

More Related Content

What's hot

What's hot (20)

IT실무교육학원/자바학원/오라클학원/SQL기초학원추천_#11.SQL초보에서 Schema Objects까지
IT실무교육학원/자바학원/오라클학원/SQL기초학원추천_#11.SQL초보에서 Schema Objects까지IT실무교육학원/자바학원/오라클학원/SQL기초학원추천_#11.SQL초보에서 Schema Objects까지
IT실무교육학원/자바학원/오라클학원/SQL기초학원추천_#11.SQL초보에서 Schema Objects까지
 
2.4 optimizer mode를 변경하는 힌트(choose)
2.4 optimizer mode를 변경하는 힌트(choose)2.4 optimizer mode를 변경하는 힌트(choose)
2.4 optimizer mode를 변경하는 힌트(choose)
 
오라클강의/자바강의/닷넷강의/자마린교육/아두이노교육학원추천_#13.SQL초보에서 Schema Objects까지
오라클강의/자바강의/닷넷강의/자마린교육/아두이노교육학원추천_#13.SQL초보에서 Schema Objects까지오라클강의/자바강의/닷넷강의/자마린교육/아두이노교육학원추천_#13.SQL초보에서 Schema Objects까지
오라클강의/자바강의/닷넷강의/자마린교육/아두이노교육학원추천_#13.SQL초보에서 Schema Objects까지
 
단일행 서브쿼리
단일행 서브쿼리단일행 서브쿼리
단일행 서브쿼리
 
Sql 조건연산자를 이용한 조건검색(2)
Sql 조건연산자를 이용한 조건검색(2)Sql 조건연산자를 이용한 조건검색(2)
Sql 조건연산자를 이용한 조건검색(2)
 
복수행 서브쿼리
복수행 서브쿼리복수행 서브쿼리
복수행 서브쿼리
 
#12.SQL초보에서 schema Objects까지(구로IT학원/IT실무교육학원/국비지원IT교육학원/오라클교육/자바교육/닷넷교육학원추천)
#12.SQL초보에서 schema Objects까지(구로IT학원/IT실무교육학원/국비지원IT교육학원/오라클교육/자바교육/닷넷교육학원추천)#12.SQL초보에서 schema Objects까지(구로IT학원/IT실무교육학원/국비지원IT교육학원/오라클교육/자바교육/닷넷교육학원추천)
#12.SQL초보에서 schema Objects까지(구로IT학원/IT실무교육학원/국비지원IT교육학원/오라클교육/자바교육/닷넷교육학원추천)
 
3.2 실행계획 sql 연산 (concatenation)
3.2 실행계획 sql 연산 (concatenation)3.2 실행계획 sql 연산 (concatenation)
3.2 실행계획 sql 연산 (concatenation)
 
문자함수(2)
문자함수(2)문자함수(2)
문자함수(2)
 
Sql기초강좌_select기본
Sql기초강좌_select기본Sql기초강좌_select기본
Sql기초강좌_select기본
 
문자함수(1)
문자함수(1)문자함수(1)
문자함수(1)
 
Rownum
RownumRownum
Rownum
 
일반함수 및 조건식 1
일반함수 및 조건식 1일반함수 및 조건식 1
일반함수 및 조건식 1
 
3.1 실행계획 sql 연산 (and equal)
3.1 실행계획 sql 연산 (and equal)3.1 실행계획 sql 연산 (and equal)
3.1 실행계획 sql 연산 (and equal)
 
#15.SQL초보에서 Schema Objects까지_국비지원IT학원/구로IT학원/실무교육학원/SQL교육/오라클교육
#15.SQL초보에서 Schema Objects까지_국비지원IT학원/구로IT학원/실무교육학원/SQL교육/오라클교육#15.SQL초보에서 Schema Objects까지_국비지원IT학원/구로IT학원/실무교육학원/SQL교육/오라클교육
#15.SQL초보에서 Schema Objects까지_국비지원IT학원/구로IT학원/실무교육학원/SQL교육/오라클교육
 
[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지
[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지
[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지
 
3.7 실행계획 SQL 연산 (INDEX RANGE SCAN DESCENDING, INLIST ITERATIOR)
3.7 실행계획 SQL 연산 (INDEX RANGE SCAN DESCENDING, INLIST ITERATIOR)3.7 실행계획 SQL 연산 (INDEX RANGE SCAN DESCENDING, INLIST ITERATIOR)
3.7 실행계획 SQL 연산 (INDEX RANGE SCAN DESCENDING, INLIST ITERATIOR)
 
3.3 실행계획 SQL 연산 (Count,Count Stopkey/Filter)
3.3 실행계획 SQL 연산 (Count,Count Stopkey/Filter)3.3 실행계획 SQL 연산 (Count,Count Stopkey/Filter)
3.3 실행계획 SQL 연산 (Count,Count Stopkey/Filter)
 
3.6 실행계획 SQL 연산 (NESTED LOOP SEMI-JOIN)
3.6 실행계획 SQL 연산 (NESTED LOOP SEMI-JOIN)3.6 실행계획 SQL 연산 (NESTED LOOP SEMI-JOIN)
3.6 실행계획 SQL 연산 (NESTED LOOP SEMI-JOIN)
 
숫자및날짜함수(2)
숫자및날짜함수(2)숫자및날짜함수(2)
숫자및날짜함수(2)
 

More from 탑크리에듀(구로디지털단지역3번출구 2분거리)

(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
탑크리에듀(구로디지털단지역3번출구 2분거리)
 

More from 탑크리에듀(구로디지털단지역3번출구 2분거리) (20)

자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
 
[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육
 
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
 
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
 
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
 
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
 
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
 
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
 
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
 
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
 
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
 
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
 
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
 

집합함수(1)

  • 2. SQL기초강좌_집합함수(Aggreation Function) 집합함수 행(ROW)들의 집합에 대해 연산을 하는 것이므로 행들의 집합 수 만큼 결과가 반환된 다. 테이블은 GROUP BY절에 의해 그룹으로 나누어 질 수 있으며 그룹함수 (Aggregation Function)는 SELECT문과 HAVING절에 사용 되어 질 수 있다. HAVING절 은 GROUP BY 되는 함수에 조건을 주기 위해서 사용 되며 WHERE 절을 이용해서는 안 된다.(그룹핑 칼럼에 조건을 주는 경우는 WHERE절, HAVING절 모두에서 사용가능 하 다.) GROUP BY절을 이용하여 한 테이블에서 행들을 원하는 그룹으로 나누는 것이 가능하 며 칼럼 명을 집합 함수와 SELECT절에 이용하고자 한다면 GROUP BY 뒤에 칼럼을 추 가 해야 한다. 즉 SELECT절에 그룹함수가 오면 SELECT절의 나머지 칼럼은 GROUP BY 절에 나타나야 한다. 또한 GROUP BY절에는 칼럼의 위치 순서 표기(1, 2, 3,,,)나 칼럼 Alias는 사용 할 수 없다.
  • 3. SQL기초강좌_집합함수(Aggreation Function) 집합함수 [형식] SELECT column, group function FROM TABLE [WHERE condition] [GROUP BY [ROLLUP | CUBE] group by expression] [HAVAING group condition] [ORDER BY columns] AVG([DISTINCT|ALL n] : n의 평균값을 반환한다.
  • 4. SQL> create table sawon ( 2 name varchar2(10) not null, 3 sal number(8,0), 4 buseo varchar2(10) 5 ); 테이블이 생성되었습니다. SQL> insert into sawon values ('가길동',2000000,'영업부'); SQL> insert into sawon values ('나길동',3000000, '영업부'); SQL> insert into sawon (name, buseo) values ('다길동','영업부'); SQL> insert into sawon values ('라길동',1000000,'관리부'); SQL> insert into sawon values ('마길동',2000000, '관리부'); SQL기초강좌_집합함수(Aggreation Function) 집합함수
  • 5. --5명의 사원을 이름, 급여, 부서를 입력했다. “다길동” 사원은 급여를 입력하지 않았음 에 유의하자. 입력하지 않았으므로 sal 칼럼은 NULL 값으로 채워져 있을 것이다. NULL 값은 아무것도 없다는 뜻이며 어떠한 연산(+,-,*,/)을 하여도 NULL이 된다. NULL 칼럼 인지를 알기 위해서도 마찬가지로 IS NULL을 사용해서 확인 해야 한다. SQL>commit; 커밋이 완료되었습니다. SQL> select name, sal, buseo from sawon; NAME SAL BUSEO ---------- ---------- ---------- 가길동 2000000 영업부 나길동 3000000 영업부 다길동 영업부 라길동 1000000 관리부 마길동 2000000 관리부 SQL기초강좌_집합함수(Aggreation Function) 집합함수
  • 6. --지금 입력한 5명의 사원들의 급여 평균은 얼마일까? 총합은 8000000원 이며 5명이므로 1600000 정도가 되리라고 생각이 들것이다. 아래를 보자. SQL> select avg(sal) from sawon; AVG(SAL) ---------- 2000000 --sal 칼럼이 NULL인 “다길동”은 계산에서 제외 된 것이다. 즉 NULL인 칼럼은 계산을 위한 대상에 서 제외된 것 이다. 다음 예문은 이를 해결 한 것이다. SQL> select avg(nvl(sal, 0)) from sawon; AVG(NVL(SAL,0)) --------------- 1600000 SQL기초강좌_집합함수(Aggreation Function) 집합함수
  • 7. --아래는 부서별로 GROUP BY하여 부서별 평균을 출력 하는 예문이다. SQL> select buseo, avg(sal) from sawon 2 group by buseo; BUSEO AVG(SAL) ---------- ---------- 관리부 1500000 영업부 2500000 --SELECT절의 어떤 칼럼 이나 표현식도 집합 함수가 아니라면 GROUP BY절에 나타나야 한다. SQL> select buseo, avg(sal) from sawon; select buseo, avg(sal) from sawon * 1행에 오류: ORA-00937: 단일 그룹의 그룹 함수가 아닙니다 SQL기초강좌_집합함수(Aggreation Function) 집합함수
  • 8. --아래는 부서별로 GROUP BY하여 부서별 평균을 출력 하는데 그 평균이 2000000 보 다 큰 부서와 그 평균을 출력하는 예문 이다. 그룹함수에 조건을 줄때는 반드시 HAVING절을 써야한다. SQL> select buseo, avg(sal) from sawon 2 group by buseo 3 having avg(sal) > 2000000; BUSEO AVG(SAL) ---------- ---------- 영업부 2500000 SQL기초강좌_집합함수(Aggreation Function) 집합함수
  • 9. --아래는 EMP 테이블에서 부서별로 급여의 최대를 출력하는데, 부서코드에 따라 오름 차순으로 표시 하는 예문 이다. SQL> select deptno, max(sal) "급여 최대(부서)" 2 from emp 3 group by deptno 4 order by deptno; DEPTNO 급여 최대(부서) ---------- ----------------- 10 5000 20 3000 30 2850 SQL기초강좌_집합함수(Aggreation Function) 집합함수