Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 결합연산자
- 하둡권한변경
- recovery
- 오라클
- Kafka
- oracle
- sql연산자
- ORA-27101
- 실습
- tibero
- 완전분산환경
- zookeeper
- hadoop
- 에러
- ORA-01034
- 오라클복구
- 하둡설치
- centos7
- Standalone
- nomount
- Linux
- 카프카 사용
- 하둡
- 카프카
- initorcl
- 설치
- hadoop명령어
- sql처리순서
- window업데이트
- crash recovery
Archives
- Today
- Total
IT 꿈나무의 일상
[ORACLE] where절과 having절 실습 본문
반응형
# 실습을 위하여 DEPT와 EMP 테이블을 사용하였습니다.
# 테이블 정보
# DEPT TABLE
SQL> SELECT * FROM DEPT;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
# EMP TABLE
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- ------------------ ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 13-JUL-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 13-JUL-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
# Having 절
- having 절은 그룹함수에 의해 적용된 결과값중에 원하는 조건에 부합하는 자료를 검색할때 사용됩니다.
- 다음은 emp 테이블에서 deptno컬럼으로 그룹지어진 데이터 중
그룹함수가 사용된 salary 컬럼에 1500이상 데이터를 출력하는 쿼리와 결과문 입니다.
SQL> select deptno, round(avg(sal),1) salary
2 from emp
3 group by deptno
4 having avg(sal) >1500;
DEPTNO SALARY
---------- ----------
30 1566.7
20 2175
10 2916.7
# Where 절
- where절은 SQL Query문에 대하여 조건을 설정하여 특정 조건에 부합하는 결과값을 얻어낼때 사용됩니다.
- 다음은 emp 테이블에서 Job컬럼 데이터가 SALESMAN 또는 MANAGER인 데이터를 추출하고,
이를 deptno 컬럼으로 그룹화 시킨 후 Salary가 1500 이상인 데이터에 대한 쿼리 결과입니다.
SQL> select deptno, round(avg(sal),1) salary
2 from emp
3 where job='SALESMAN' or job='MANAGER'
4 group by deptno
5 having avg(sal) >1500;
DEPTNO SALARY
---------- ----------
30 1690
20 2975
10 2450
# SQL Query 동작 순서
- oracle에서 쿼리를 처리하는 순서는 다음과 같습니다.
- 쿼리 실행시 orcle은 from table절을 통하여 해당 데이터베이스내에 테이블이 존재하는지 확인합니다.
- 그 다음 where절(조건절)을 통하여 해당 테이블의 데이터를 조건에 맞게 필터링을 걸게됩니다.
- 이렇게 필터링된 데이터에 select절을 통하여 보고자 하는 컬럼데이터를 추출합니다
- 간소화된 데이터에 group by절을 통하여 해당 데이터를 그룹화하고
- having절에서 select절에서 그룹함수를 사용한 컬럼에 대하여 필터링을 걸게됩니다.
SQL> select deptno, round(avg(sal),1) salary -- 3
2 from emp -- 1
3 where job='SALESMAN' or job='MANAGER' -- 2
4 group by deptno -- 4
5 having avg(sal) >1500; -- 5
반응형
'DB' 카테고리의 다른 글
오라클 파라미터 파일 손상으로 인한 복구방법 (0) | 2021.11.30 |
---|---|
[ORACLE] JOIN과 숫자함수, 문자함수 실습 (0) | 2021.08.08 |
[ORACLE] SQL 연산자 (비교 / 결합 / in /any / exists ) 실습 (0) | 2021.08.08 |
[ORACLE] 오라클에서 사용자 권한 부여 및 회수 정리 (DCL) (0) | 2021.07.15 |
[ORACLE] Date Type table 생성 및 데이터 입력 (0) | 2021.07.14 |
Comments