PL/SQL - ML

사전준비

  • 두 파일을 다운로드

hr.csv

pl_sql_ml_modeling.sql

  • SQL Developer에서 데이터 임포트한다.

    • hr.csv를 임포트해야 한다.
  • 새 SQL 워크시트에서 pl_sql_ml_modeling.sql 내용을 넣는다.

    • 메모장으로 열어서 내용을 복사하고 워크시트에 붙이면 된다.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
-- 의사 결정 트리 모델로 퇴사자 예측 모델 만들기
-- 데이터셋 : https://www.kaggle.com/datasets/pankeshpatel/hrcommasep
-- 기존에 있을지도 모를 HR 데이터 삭제
-- 퇴사 여부 예측 (LEFT)

SELECT COUNT(*) FROM HR_DATA_MAIN;
-- 14999

-- 훈련 데이터와 테스트 데이터로 분리
DROP TABLE HR_DATA_TRAINING;
CREATE TABLE HR_DATA_TRAINING
AS
SELECT *
FROM HR_DATA_MAIN
WHERE EMP_ID < 10500;

DROP TABLE HR_DATA_TEST;

CREATE TABLE HR_DATA_TEST
AS
SELECT *
FROM HR_DATA_MAIN
WHERE EMP_ID >= 10500;

-- 머신 러닝 모델의 환경설정을 위한 정보가 들어있는 테이블을 생성합니다.
-- URL : https://docs.oracle.com/database/121/ARPLS/d_datmin.htm#ARPLS192
DROP TABLE DTSETTINGS;
CREATE TABLE DTSETTINGS
AS
SELECT *
FROM TABLE (DBMS_DATA_MINING.GET_DEFAULT_SETTINGS)
WHERE SETTING_NAME LIKE '%GLM%';

BEGIN
INSERT INTO DTSETTINGS
VALUES ('ALGO_NAME', 'ALGO_DECISION_TREE');

INSERT INTO DTSETTINGS
VALUES (DBMS_DATA_MINING.TREE_IMPURITY_METRIC, 'TREE_IMPURITY_ENTROPY'); -- 모델의 핵심엔진은 엔트로피로 설정
COMMIT;
END;
/

-- 머신 러닝 모델을 생성합니다.
BEGIN
DBMS_DATA_MINING.DROP_MODEL('DT_MODEL');
END;
/

BEGIN
DBMS_DATA_MINING.CREATE_MODEL (
MODEL_NAME => 'DT_MODEL',
MINING_FUNCTION => DBMS_DATA_MINING.CLASSIFICATION,
DATA_TABLE_NAME => 'HR_DATA_TRAINING',
CASE_ID_COLUMN_NAME => 'EMP_ID',
TARGET_COLUMN_NAME => 'LEFT',
SETTINGS_TABLE_NAME => 'DTSETTINGS');
END;
/

-- 5. 생성된 모델을 확인합니다.
SELECT MODEL_NAME,
ALGORITHM,
MINING_FUNCTION
FROM ALL_MINING_MODELS
WHERE MODEL_NAME = 'DT_MODEL';

-- 6. 생성된 모델의 환경설정 내용을 확인합니다.
SELECT SETTING_NAME, SETTING_VALUE
FROM ALL_MINING_MODEL_SETTINGS
WHERE MODEL_NAME = 'DT_MODEL';

-- 7. 실제 값과 예측 값과 예측 확률을 출력합니다.
SELECT EMP_ID, T.LEFT 실제값,
PREDICTION (DT_MODEL USING *) 예측값,
PREDICTION_PROBABILITY (DT_MODEL USING *) "모델이 예측한 확률"
FROM HR_DATA_TEST T;

-- 8. 학습한 머신러닝 모델의 성능을 확인합니다.
DROP TABLE HR_DATA_TEST_MATRIX_2;
CREATE OR REPLACE VIEW VIEW_HR_DATA_TEST
AS
SELECT EMP_ID, PREDICTION(DT_MODEL USING *) PREDICTED_VALUE,
PREDICTION_PROBABILITY(DT_MODEL USING * ) PROBABILITY
FROM HR_DATA_TEST;

SET SERVEROUTPUT ON

DECLARE
V_ACCURACY NUMBER;
BEGIN
DBMS_DATA_MINING.COMPUTE_CONFUSION_MATRIX (
ACCURACY => V_ACCURACY,
APPLY_RESULT_TABLE_NAME => 'VIEW_HR_DATA_TEST',
TARGET_TABLE_NAME => 'HR_DATA_TEST',
CASE_ID_COLUMN_NAME => 'EMP_ID',
TARGET_COLUMN_NAME => 'LEFT',
CONFUSION_MATRIX_TABLE_NAME => 'HR_DATA_TEST_MATRIX_2',
SCORE_COLUMN_NAME => 'PREDICTED_VALUE',
SCORE_CRITERION_COLUMN_NAME => 'PROBABILITY',
COST_MATRIX_TABLE_NAME => NULL,
APPLY_RESULT_SCHEMA_NAME => NULL,
TARGET_SCHEMA_NAME => NULL,
COST_MATRIX_SCHEMA_NAME => NULL,
SCORE_CRITERION_TYPE => 'PROBABILITY');
DBMS_OUTPUT.PUT_LINE('**** MODEL ACCURACY ****: ' || ROUND(V_ACCURACY,4));
END;
/
  • Reference : 오라클 SQL과 PL/SQL을 다루는 기술

PL/SQL practice02

  • PL/SQL은 일반 프로그래밍 언어에서 제공하는 많은 기능이 탑재되어 있다.
  • 다른 프로그래밍 언어와 다른 점은 PL/SQL은 DB에 직접 탑재되어 컴파일되고 실행되어 성능 면에서도 우수하고, DB 관련 처리를 할 때 수많은 기능을 제공한다

프로시저

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-- 프로시저
-- 함수와 다르게 로직 처리만 수행 / 결괏값 반환 (X)
-- p.290
SELECT * FROM JOBS;

-- 프로시저 생성
CREATE OR REPLACE PROCEDURE my_new_job_proc
(p_job_id IN JOBS.JOB_ID%TYPE
, p_job_title IN JOBS.JOB_TITLE%TYPE
, p_min_sal IN JOBS.MIN_SALARY%TYPE
, p_max_sal IN JOBS.MAX_SALARY%TYPE
)
IS
BEGIN
INSERT INTO JOBS(job_id
, job_title
, min_salary
, max_salary
, create_date
, update_date)
VALUES(p_job_id, p_job_title, p_min_sal, p_max_sal, SYSDATE, SYSDATE);

COMMIT;
END;

프로시저 실행

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
-- 프로시저 실행
-- exec
EXEC my_new_job_proc ('SM_JOB1', 'Sample JOB1', 1000, 5000);

-- 확인
SELECT *
FROM jobs
WHERE job_id = 'SM_JOB1';

-- 프로시저 업데이트
-- 끊기면 안되고, 계속 실행이 되어야 함

CREATE OR REPLACE PROCEDURE my_new_job_proc
(p_job_id IN JOBS.JOB_ID%TYPE
, p_job_title IN JOBS.JOB_TITLE%TYPE
, p_min_sal IN JOBS.MIN_SALARY%TYPE
, p_max_sal IN JOBS.MAX_SALARY%TYPE
)
IS
vn_cnt NUMBER := 0;
BEGIN

-- 동일한 JOB_ID가 있는지 체크
SELECT COUNT(*)
INTO vn_cnt
FROM JOBS
WHERE job_id = p_job_id;

-- 없으면 INSERT
IF vn_cnt = 0 THEN
INSERT INTO JOBS(job_id
, job_title
, min_salary
, max_salary
, create_date
, update_date)
VALUES(p_job_id, p_job_title, p_min_sal, p_max_sal, SYSDATE, SYSDATE);
ELSE -- 있으면 UPDATE
UPDATE JOBS
SET job_title = p_job_title
, min_salary = p_min_sal
, max_salary = p_max_sal
, update_date = SYSDATE
WHERE job_id = p_job_id;
END IF;
COMMIT;
END;

프로시저 실행

1
2
3
4
5
6
7
-- 프로시저 실행
-- exec
EXEC my_new_job_proc ('SM_JOB1', 'Sample JOB1', 1000, 5000);

SELECT *
FROM jobs
WHERE job_id = 'SM_JOB1';
1
2
3
-- p.293
-- 한줄로 실행. (이유 모름)
EXECUTE my_new_job_proc (p_job_id => 'SM_JOB1', p_job_title => 'Sample JOB1', p_min_sal => 2000, p_max_sal => 7000);
1
SELECT * FROM jobs WHERE job_id = 'SM_JOB1';
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
32
33
34
35
36
-- 매개변수 디폴트 설정
CREATE OR REPLACE PROCEDURE my_new_job_proc
(p_job_id IN JOBS.JOB_ID%TYPE
, p_job_title IN JOBS.JOB_TITLE%TYPE
, p_min_sal IN JOBS.MIN_SALARY%TYPE := 10
, p_max_sal IN JOBS.MAX_SALARY%TYPE := 100
)
IS
vn_cnt NUMBER := 0;
BEGIN

-- 동일한 JOB_ID가 있는지 체크
SELECT COUNT(*)
INTO vn_cnt
FROM JOBS
WHERE job_id = p_job_id;

-- 없으면 INSERT
IF vn_cnt = 0 THEN
INSERT INTO JOBS(job_id
, job_title
, min_salary
, max_salary
, create_date
, update_date)
VALUES(p_job_id, p_job_title, p_min_sal, p_max_sal, SYSDATE, SYSDATE);
ELSE -- 있으면 UPDATE
UPDATE JOBS
SET job_title = p_job_title
, min_salary = p_min_sal
, max_salary = p_max_sal
, update_date = SYSDATE
WHERE job_id = p_job_id;
END IF;
COMMIT;
END;
1
2
EXECUTE my_new_job_proc('SM_JOB1', 'Sample JOB1');
SELECT * FROM jobs WHERE job_id = 'SM_JOB1';
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
32
33
34
35
36
37
38
-- OUT, IN OUT 매개변수
CREATE OR REPLACE PROCEDURE my_new_job_proc
(p_job_id IN JOBS.JOB_ID%TYPE
, p_job_title IN JOBS.JOB_TITLE%TYPE
, p_min_sal IN JOBS.MIN_SALARY%TYPE := 10
, p_max_sal IN JOBS.MAX_SALARY%TYPE := 100
, p_upd_date OUT JOBS.UPDATE_DATE%TYPE -- 갱신일자 값을 반환한다!
)
IS
vn_cnt NUMBER := 0;
vn_cur_date JOBS.UPDATE_DATE%TYPE := SYSDATE;
BEGIN

-- 동일한 JOB_ID가 있는지 체크
SELECT COUNT(*)
INTO vn_cnt
FROM JOBS
WHERE job_id = p_job_id;

-- 없으면 INSERT
IF vn_cnt = 0 THEN
INSERT INTO JOBS(job_id
, job_title
, min_salary
, max_salary
, create_date
, update_date)
VALUES(p_job_id, p_job_title, p_min_sal, p_max_sal, SYSDATE, SYSDATE);
ELSE -- 있으면 UPDATE
UPDATE JOBS
SET job_title = p_job_title
, min_salary = p_min_sal
, max_salary = p_max_sal
, update_date = SYSDATE
WHERE job_id = p_job_id;
END IF;
COMMIT;
END;
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
-- OUT, IN OUT 매개변수
CREATE OR REPLACE PROCEDURE my_new_job_proc
(p_job_id IN JOBS.JOB_ID%TYPE
, p_job_title IN JOBS.JOB_TITLE%TYPE
, p_min_sal IN JOBS.MIN_SALARY%TYPE := 10
, p_max_sal IN JOBS.MAX_SALARY%TYPE := 100
, p_upd_date OUT JOBS.UPDATE_DATE%TYPE -- 갱신일자 값을 반환한다!
)
IS
vn_cnt NUMBER := 0;
vn_cur_date JOBS.UPDATE_DATE%TYPE := SYSDATE;
BEGIN

-- 동일한 JOB_ID가 있는지 체크
SELECT COUNT(*)
INTO vn_cnt
FROM JOBS
WHERE job_id = p_job_id;

-- 없으면 INSERT
IF vn_cnt = 0 THEN
INSERT INTO JOBS(job_id
, job_title
, min_salary
, max_salary
, create_date
, update_date)
VALUES(p_job_id, p_job_title, p_min_sal, p_max_sal, vn_cur_date, vn_cur_date);
ELSE -- 있으면 UPDATE
UPDATE JOBS
SET job_title = p_job_title
, min_salary = p_min_sal
, max_salary = p_max_sal
, update_date = vn_cur_date
WHERE job_id = p_job_id;
END IF;

-- OUT 매개변수에 갱신 일자 할당
p_upd_date := vn_cur_date;
COMMIT;
END;

SET SERVEROUTPUT ON
DECLARE
vd_cur_date JOBS.UPDATE_DATE%TYPE;
BEGIN
my_new_job_proc('SM_JOB1', 'Sample JOB1', 2000, 6000, vd_cur_date);
DBMS_OUTPUT.PUT_LINE(vd_cur_date);
END;
  • Reference : 오라클 SQL과 PL/SQL을 다루는 기술

PL/SQL practice01

  • PL/SQL은 일반 프로그래밍 언어에서 제공하는 많은 기능이 탑재되어 있다.
  • 다른 프로그래밍 언어와 다른 점은 PL/SQL은 DB에 직접 탑재되어 컴파일되고 실행되어 성능 면에서도 우수하고, DB 관련 처리를 할 때 수많은 기능을 제공한다

IF문

1
2
3
4
5
6
7
8
9
10
11
12
13
-- IF문

SET SERVEROUTPUT ON
DECLARE
vn_num1 NUMBER := 1;
vn_num2 NUMBER := 2;
BEGIN
IF vn_num1 >= vn_num2 THEN
DBMS_OUTPUT.PUT_LINE(vn_num1 || '이 큰 수');
ELSE
DBMS_OUTPUT.PUT_LINE(vn_num2 || '이 큰 수');
END IF;
END;

실행)

Untitled

ELSE IF문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
DECLARE 
vn_salary NUMBER := 0; -- 변수 초기화
vn_department_id NUMBER := 0; -- 변수 초기화
BEGIN
vn_department_id := ROUND(DBMS_RANDOM.VALUE (10, 120), -1);
SELECT salary
INTO vn_salary
FROM employees
WHERE department_id = vn_department_id
AND ROWNUM = 1;

DBMS_OUTPUT.PUT_LINE(vn_salary);

IF vn_salary BETWEEN 1 AND 3000 THEN
DBMS_OUTPUT.PUT_LINE('낮음');
ELSIF vn_salary BETWEEN 3001 AND 6000 THEN
DBMS_OUTPUT.PUT_LINE('중간');
ELSIF vn_salary BETWEEN 6001 AND 10000 THEN
DBMS_OUTPUT.PUT_LINE('높음');
ELSE
DBMS_OUTPUT.PUT_LINE('최상위');
END IF;
END;

중첩 IF문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-- 중첩 IF문
DECLARE
vn_salary NUMBER := 0;
vn_department_id NUMBER := 0;
vn_commission NUMBER := 0;
BEGIN
vn_department_id := ROUND(DBMS_RANDOM.VALUE (10,120), -1);
SELECT salary, commission_pct
INTO vn_salary, vn_commission
FROM employees
WHERE department_id = vn_department_id
AND ROWNUM = 1;
DBMS_OUTPUT.PUT_LINE(vn_salary);

IF vn_commission > 0 THEN
IF vn_commission > 0.15 THEN
DBMS_OUTPUT.PUT_LINE(vn_salary * vn_commission);
END IF;
ELSE
DBMS_OUTPUT.PUT_LINE(vn_salary);
END IF;
END;

CASE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-- CASE (p.277)
DECLARE
vn_salary NUMBER := 0; -- 변수 초기화
vn_department_id NUMBER := 0; -- 변수 초기화
BEGIN
vn_department_id := ROUND(DBMS_RANDOM.VALUE (10, 120), -1);
SELECT salary
INTO vn_salary
FROM employees
WHERE department_id = vn_department_id
AND ROWNUM = 1;

DBMS_OUTPUT.PUT_LINE(vn_salary);

CASE WHEN vn_salary BETWEEN 1 AND 3000 THEN
DBMS_OUTPUT.PUT_LINE('낮음');
WHEN vn_salary BETWEEN 3001 AND 6000 THEN
DBMS_OUTPUT.PUT_LINE('낮음');
WHEN vn_salary BETWEEN 6001 AND 10000 THEN
DBMS_OUTPUT.PUT_LINE('높음');
ELSE
DBMS_OUTPUT.PUT_LINE('최상위');
END CASE;
END;

LOOP 문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- LOOP
-- 3단
DECLARE
vn_base_num NUMBER := 3;
vn_cnt NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE(vn_base_num || '*' || vn_cnt || '= '
|| vn_base_num * vn_cnt);
vn_cnt := vn_cnt + 1;

EXIT WHEN vn_cnt > 9; -- vn_cnt가 9보다 크면 루프 종료
END LOOP;
END;

WHILE 문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- WHILE 
DECLARE
vn_base_num NUMBER := 3;
vn_cnt NUMBER := 1;
BEGIN
-- 조건식이 참일 때만 실행되는 것
-- 조건식이 거짓이 되면 실행 중지
WHILE vn_cnt <= 9 -- vn_cnt가 9보다 크면 루프 종료
LOOP
DBMS_OUTPUT.PUT_LINE(vn_base_num || '*' || vn_cnt || '= '
|| vn_base_num * vn_cnt);
vn_cnt := vn_cnt + 1;
END LOOP;
END;

WHILE (EXIT)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-- WHILE (EXIT)
-- WHILE
DECLARE
vn_base_num NUMBER := 3;
vn_cnt NUMBER := 1;
BEGIN
-- 조건식이 참일 때만 실행되는 것
-- 조건식이 거짓이 되면 실행 중지
WHILE vn_cnt <= 9 -- vn_cnt가 9보다 크면 루프 종료
LOOP
DBMS_OUTPUT.PUT_LINE(vn_base_num || '*' || vn_cnt || '= '
|| vn_base_num * vn_cnt);

-- Break (= EXIT)
EXIT WHEN vn_cnt = 5; -- vn_cnt값이 5가 되면 루프 종료
vn_cnt := vn_cnt + 1;
END LOOP;
END;

FOR-LOOP

1
2
3
4
5
6
7
8
9
10
-- FOR-LOOP 
-- 인덱스값
DECLARE
vn_base_num NUMBER := 3;
BEGIN
FOR i IN 1..9
LOOP
DBMS_OUTPUT.PUT_LINE (vn_base_num || '*' || i || '= ' || vn_base_num * i);
END LOOP;
END;

CONTINUE

1
2
3
4
5
6
7
8
9
10
-- CONTINUE
DECLARE
vn_base_num NUMBER := 3;
BEGIN
FOR i IN 1..9
LOOP
CONTINUE WHEN i = 5;
DBMS_OUTPUT.PUT_LINE (vn_base_num || '*' || i || '= ' || vn_base_num * i);
END LOOP;
END;

GOTO 문

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
-- GOTO문
-- 사용자 정의 함수와 약간 비슷

DECLARE
vn_base_num NUMBER := 3;
BEGIN
<<third>>
FOR i IN 1..9
LOOP
DBMS_OUTPUT.PUT_LINE (vn_base_num || '*' || i || '= ' || vn_base_num * i);
IF i = 3 THEN
GOTO fourth;
END IF;
END LOOP;

<<fourth>>
vn_base_num := 4;
FOR i IN 1..9
LOOP
DBMS_OUTPUT.PUT_LINE (vn_base_num || '*' || i || '= ' || vn_base_num * i);
END LOOP;
END;

-- NULL문
-- 검색 찾기 링크 참조
  • Reference : 오라클 SQL과 PL/SQL을 다루는 기술

PL/SQL start

PL/SQL

  • SQL은 비절차적 언어
    • 파이썬, R, 자바 등과는 다르다
  • ‘DB 프로그래밍’이라 하면 SQL을 사용한 DML문을 사용하는 것을 지칭할 수도 있지만, 실제 복잡한 비즈니스 로직을 만드는 것은 PL/SQL을 사용해 구현하는 것이 보통이다.
  • PL/SQL은 일반 프로그래밍 언어에서 제공하는 많은 기능이 탑재되어 있다.
  • 다른 프로그래밍 언어와 다른 점은 PL/SQL은 DB에 직접 탑재되어 컴파일되고 실행되어 성능 면에서도 우수하고, DB 관련 처리를 할 때 수많은 기능을 제공한다.

둘째 마당

  • 복잡한 비즈니스 로직을 처리하는 —> 프로그래밍

PL/SQL 기본 구조

  • PL/SQL 소스 프로그램의 기본 단위를 블록(Block)이라고 하는데, 블록은 선언부, 실행부, 예외 처리부로 구성된다.

  • 이 블록은 다시 이름이 없는 블록과 이름이 있는 블록으로 구분할 수 있는데 전자에 속하는 것이 익명 블록이며, 함수, 프로시저, 패키지 등이 후자에 속한다.

  • 오라클 SQL과 PL/SQL을 다루는 기술 260p

  • 이름이 없는 익명 블록anonymous block을 사용해 PL/SQL 코드를 작성해 보자.

  • 먼저 변수를 선언하고 값을 할당해 이 값을 출력하는 익명 블록을 만든다.

1
2
3
4
5
6
7
8
9
10
11
12
13
-- PL/SQL
-- 블록 단위로 진행
-- 선언부
SET SERVEROUTPUT ON
SET TIMING ON -- 경과시간 확인
DECLARE
vi_num NUMBER; -- 변수 선언
BEGIN
-- 실행 (코드 실행)
vi_num := 100;
DBMS_OUTPUT.PUT_LINE(vi_num);
END; -- 블록 종료
-- / PL/SQL 자체가 종료
  • 만약 현재 로그온 한 SQLPlus를 종료하고 다시 접속한다면 “SET SERVEROUTPUT ON”이란 명령어를 다시 실행해야 출력 결과를 볼 수 있다.
  • 참고로 SQLPlus 상에서 PL/SQL 블록을 실행했을 때 총 소요시간도 알 수 있는데, 이를 위해서는 SET TIMING ON 명령어를 실행하면 된다.

실행)

Untitled

상수

  • 상수는 변수와는 달리 한 번 값을 할당하면 변하지 않는다
  • 상수명 CONSTANT 데이터타빙 : = 상수값;
1
2
3
4
5
6
-- p.264
DECLARE
a INTEGER := 2**2*3**2; -- 4 * 9
BEGIN
DBMS_OUTPUT.PUT_LINE('a = ' || TO_CHAR(a));
END;

실행)

Untitled

DML문

  • SQL문 중 DDL은 PL/SQL 상에서 직접 쓸 수 없고 DML문만 사용한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- DM문
-- PL/SQL 테이블과 연동해서 특정 로직을 처리하는 것

DECLARE
vs_emp_name VARCHAR2(80); -- 사원명 변수
vs_dep_name VARCHAR2(80); -- 부원명 변수
BEGIN
SELECT a.emp_name, b.department_name
INTO vs_emp_name, vs_dep_name
FROM employees a
, departments b
WHERE a.department_id = b.department_id
AND a.employee_id = 100;
DBMS_OUTPUT.PUT_LINE(vs_emp_name || ' - ' || vs_dep_name);
END;

실행)

Untitled

데이터 타입

1
2
3
4
5
6
7
8
9
10
11
12
DECLARE
vs_emp_name employees.emp_name%TYPE; -- 사원명 변수
vs_dep_name departments.department_name%TYPE; -- 부원명 변수
BEGIN
SELECT a.emp_name, b.department_name
INTO vs_emp_name, vs_dep_name
FROM employees a
, departments b
WHERE a.department_id = b.department_id
AND a.employee_id = 100;
DBMS_OUTPUT.PUT_LINE(vs_emp_name || ' - ' || vs_dep_name);
END;

실행)

Untitled

데이터 크기

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
-- SQL과 PL/SQL에서 사용할 수 있는 데이터 크기는 다름
-- PL/SQL > SQL보다 더 큰 크기로 사용 가능
DROP TABLE ch08_varchar2;
CREATE TABLE ch08_varchar2(
VAR1 VARCHAR2(4000)
);

INSERT INTO ch08_varchar2 (VAR1)
VALUES ('tQbADHDjqtRCvosYCLwzbyKKrQCdJubDPTHnzqvjRwGxhQJtrVbXsLNlgeeMCemGMYpvfoHUHDxIPTDjleABGoowxlzCVipeVwsMFRNzZYgHfQUSIeOITaCKJpxAWwydApVUlQiKDgJlFIOGPOKoJsoemqNbOLdZOBcQhDcMLXuYjRQZDIpgpmImgiwzcLkSilCmLrSbmFNsKEEpzCHDylMvkYPKPNeuJxLvJiApNCYzrMcflECbxwNTKSxaEwVvCYnTnFfMFgDqxobWcSmMJrNTQIVOeWlPaMTfRHsrlFSukppmljmOojPSgJiSbQcgtWWOwUNNYFGtgCGBsIcTGAiHWBxtYVXecoJgJCAJptIVmVTZSKliRLoPYTIUpksBuQaqFHLhCkosWChoMjbqgLtBIRBynsKjKiLrdeHVvZanNVElDjLWwlCDhbpsAVQMTzjzhoKIJBdthynMBMVjeNmsKAjdAYhPZKmuKOuMloQdkqPjoKbfjDEeATciMrXiMQorMhYmBlMODBbyLLIkbmtZdPcWGSuxFEUwXnWpvnunEgcLelSneRIpgRNTzTkHqgLbpxoHzCYgSWlIAvKljCnmWiPWGGwlUFOudRSdoqUxntyhNYEiVXtMObywEltTImawnElpmeiWwlTjGTFceqyjhNqiDLxwduubykWzDmFSJNvVvDZibrCpAReqQjlQZcxuVqjKGKvoDuEcQPQeDzmdMYSOTIQdPDNfDffCOUWflHSQhvVTiYumBQIoyznWNITGZkefknJpGEutUnhBgLPQTWTBeTYccqlLrxvRjfJpdpfVDqqfKCngemIEDDHNdvBxCqKDTrrJAumXMKgpWLIHctQuACeNaKnffpYXiioLxZDrxpuZPPUGpRsCtoQuBfogkKuusVATkMyajKTPSyTQbfhZepRjNdrhkymqKvsAcThYbMSMnkKcLWFPAMeGysBVKkQtFMPvRBoDszlSZcMYzwxkKQwJnuVnDxShYiHFlzgDWqhZoqeypyFVBNDtHkiVzHkQisYLbsbVneJyHbHdtaIFLVbfTqbkGQTEjFlPiGUddPUIoLWALrbKcLwBizwhJvaXkvOphcGWpdNAhxgehCvjcQFSFhxrBuANKjyWncWAUpKKJcfQCsQlLfpqdMhjWGkAMMWUaDfCrGtmtkiIZOdNapEnvfFKiHAhBhejgKSuyKXFQXyCaLwwvonHsceJKgjtnYVZvBCYYBSqNCqVqCGewootJJsqrCnmiteMZBbyMPnIrdcielnGUYmwiOPmEqKGvxDmDRTDRumnSRcnvgxLbaiQIuzdslEIMquvvwmvgaumqPkduNyfRtXErCPvDYLelhjNNOjbGryRpTtDHxIJebMEtKryUyZRIdADeTEBExwHMRHzAYFizYiesaMhNIsOUzUTmyEMuFQrsUEtjwhUWIvADNlrcxPZwRazPMMvdVZssmXbXuCkRoPYNGLPwUmrWrrIgQoMSGMPvTcbHnbtleyKYmOMgymANQBZDMoqAOzMHrAVunIiykCudFVNObNgXOoyfQRICbFsWygSZXufipvrWWmRnBWYdoKmIRewOObUjiNDdQsxQIXtlbPSSngfQPfeQKOolVASXIuAmeODKtSOPaEaFKcedGzzsbrPlsPnRRuYFeVdhyufpjFVVrTPczSQkmPYXercLMmVEaDmJXKTqEVNSKeOshDCDJwdINFsLhAuKIIfOdjSEndDwumQLvePVjzNoIfUELOANeshoNgwVhFADjtUIjIhQAIyRnzSoxSRSWklITMgdjQZTthwsnBVLWyfSsAdLzOnEqmMCGBlTYGjtqvKbBoATRwkPkOTSbUhZClVzjiLLIFEMuptuodeRKXUaBfUhVTtasFsZdVnKtEfLldJYsxjlrBADRqhEBEmBKxlXKgEhiKcwAdztcETMUteJwadfaZLEBRjwJOGaIMhsfAxtuBQWyQLGXPDlFQmkcMsKsGUlQBEAubDqbuBYqXLZgmhPftLkYaCYGReLCVXssOxzJFJwnxKJzaaYzfVpbHYBtiBeQZRilJZqrrMTrVtYAcwGxAAddwtlxzdZebfZHjzqRmrrBPNbkVHqjCHtVKUjIDPVSrtyEsPRPoyyPOFOSBcgClTzlAIPmPMkdlpFHctzKGpyQMInMwPKojVErCOrHbCsZoEXqyOcHReSybmxwYabyioVnDxPEvskutVHLWQTNudmKICoaoSGKqONrBmvtGNBKAaJxCRKTDOIqrJOsQVOmGxmuIDEddVYvDwILTyushOAiXbkRIKgNLnFJdOagmiOHKRBKIIkxkOUeZWMRNlqpJdFgKjrGhIzrgBtgjVOtZAskKRbqzRVwLUoUAtRpRkoRQNLIrbLmmjZTugXJBNCscnMguKVAFDKpODtCsmdlBvQGALeBGUitYBxLYhJxeVcAnTWmTAvCITzdzqiBfEudEIBmkDAXIFmoOmsTMZDOnhXYrgMDlDbjednYWWJbGhrXFrxMQmQSmRBwoOqWGbGmjZNlJCvSHvmtZUkIScWXVdfSsdvdyQNpGFIOuteXhCMLmmEHrMucEmFbCIOHTJINAuIUOPfAfijIPkZjppGCCSRJNXWNCmliwUgABkHWuelUWeLsyVKVcZWOSeiQBQibCQJQUgGkTrXZxdBLsgjeMIwOyORDBpywuvlrLScRNhvaCYaKKRvOZeqBebUWWFhNnIRJvedFNfFPgWZJgNRaUpyYWFNiXJfAqNjyCEQYwAdFBQKKolwrufmJOfrToJFEsoNjaphcNvfWGIjKrKZSoSJEsbRqNVcoprpcGrnBgcNAnWUFpRldcPJkPfaoLKRCmVyMAWMXmnScodKisCTqllZEWQQSCFETxLNntgdcFEFRsTSIhuewwrHIlOeCcRqkzgQhKnKyHZHdFsMEKvPywLbjaspVxUMEkVzCGcGoTmaBjUMwJuAYdSTaYGDHHWDrvGgMVTtehpzfgofkmqtamffJbCKOzJgPsHNEnFarjADJGyKLwwitCiBXIraUdZtZwNjUtGbWqxksepVYztIBrimByoYQfUQgOndzFmhnuSmhYWvHliWUHgbvBIkYasDElNsjcCLtMvjQEhJjWvlnAscPwOYfelrfgfRAZGBxdFlMNkfYEWLbkfUhbRPHoDZsaAQdoKhAAWzOcHoAkkHPQMNIxgHNJaqEFBqCuMYEtLpMnIiMCWWEPnBYgYrxlXFGYpQWUNFevwcEUvUzDeSZNrdmahAfjeLSAGjHVnqyTzJkiVXjDJXzOiszXQCErQwwDMMqjLxWebJwNAVdrXeyMDRYXmLMDnuWLVaShVGhlgvbjOdOnhCDTNVazYDnzstqxjOuWbLcDaavRumKUOQXBQwKtdFgOzXiQKWFporrIcylIHlTmTKAIpBqNUbkajLTlwAHieCcqPIJYhegwQhWpYZdfxpQXDKtYzsrmnvdiTKgXfXKlIHPHlxQtqXGhMVPOBAKVZJfkrDNEwnQFwgfoHJSqQxTzRswVLrtFgpVzKcLilgznElWUfhERyeUrCcFCuGJddlFHJrXsqRdUjqUwaBmJVNwjRbCFiVMOSFuNctNVzhmhUpoddsMPUFMvNIMsMjHIWYiLjhSajZqpDkMvUOUCbYKfNHGpdUeWGUtDXHDNSCEXqYrhWhvnISnjfoBMCwwptksarPImRZaRxBMjoBdlmRGlIuQZDzCLnxxioATnGVFFTATUpeypOCaCeJAvPLxEXYzlCgXvXirGSZFyZPPSCdOSHxeELRsetFrWgqPNNpwgbgBEYPOSpLWeVdqOxPaQnidyPVMmELzeJPWgNsWBdPJPjhkdGpeAYZfrBNqdbOwzbtLiWMPafjgWQNcWKqmcleWLcMJoGSAEIUyFuzElZKXonHOMDdGMtSKEFUWdfPfnDecKNhIjAKRYmkXgpPAzlKIOpViZPkZdozzAoWwDnXkfDikvkXcQaoBtzKkcRhNpJRYaGTkdnlfotsJZsLqpYaWoK');

commit;

DECLARE
vs_sql_varchar2 VARCHAR2(4000);
vs_plsql_varchar2 VARCHAR2(32767);
BEGIN

-- ch08_varchar2 테이블의 값을 변수에 담는다.
SELECT VAR1
INTO vs_sql_varchar2
FROM ch08_varchar2;

-- PL/SQL 변수에 4000 BYTE 이상 크기의 값을 넣는다.
vs_plsql_varchar2 := vs_sql_varchar2 || ' - ' || vs_sql_varchar2 || ' - ' || vs_sql_varchar2;

-- 각 변수 크기를 출력한다.
DBMS_OUTPUT.PUT_LINE('SQL VARCHAR2 길이 : ' || LENGTHB(vs_sql_varchar2));
DBMS_OUTPUT.PUT_LINE('PL/SQL VARCHAR2 길이 : ' || LENGTHB(vs_plsql_varchar2));
END;

Untitled

두 수의 합

1
2
3
4
5
6
7
8
9
10
-- 두 수의 합
accept p_num1 prompt '첫번째 숫자를 입력하세요 ~ '
accept p_num2 prompt '두번째 숫자를 입력하세요 ~ '

DECLARE
v_sum number(10);
BEGIN
v_sum := &p_num1 + &p_num2;
DBMS_OUTPUT.PUT_LINE('TOtal : ' || v_sum);
END;

실행) 1 2

Untitled

데이터 입력

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
DROP table emp;
DROP table dept;

CREATE TABLE DEPT
(DEPTNO number(10),
DNAME VARCHAR2(14),
LOC VARCHAR2(13) );

INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');

CREATE TABLE EMP (
EMPNO NUMBER(4) NOT NULL,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4) ,
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2) );

INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,'81-11-17',5000,NULL,10);
INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,'81-05-01',2850,NULL,30);
INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,'81-05-09',2450,NULL,10);
INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,'81-04-01',2975,NULL,20);
INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,'81-09-10',1250,1400,30);
INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,'81-02-11',1600,300,30);
INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',7698,'81-08-21',1500,0,30);
INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,'81-12-11',950,NULL,30);
INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,'81-02-23',1250,500,30);
INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,'81-12-11',3000,NULL,20);
INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,'80-12-11',800,NULL,20);
INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,'82-12-22',3000,NULL,20);
INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,'83-01-15',1100,NULL,20);
INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,'82-01-11',1300,NULL,10);

commit;

drop table salgrade;

create table salgrade
( grade number(10),
losal number(10),
hisal number(10) );

insert into salgrade values(1,700,1200);
insert into salgrade values(2,1201,1400);
insert into salgrade values(3,1401,2000);
insert into salgrade values(4,2001,3000);
insert into salgrade values(5,3001,9999);

commit;

조회

1
2
3
4
5
6
7
8
9
10
11
12
13
-- 사원번호를 찾아라
-- 사원번호를 입력하면 해당 사원의 급여가 나오도록 출력하세요!
-- 7782
ACCEPT p_empno prompt '사원 번호를 입력하세요 ~'
DECLARE
v_sal number(10);
BEGIN
SELECT SAL INTO v_sal
FROM emp
WHERE empno = &p_empno;

DBMS_OUTPUT.PUT_LINE('월급은 '|| v_sal);
END;

실행) 7893

Untitled

조건절

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
-- 조건절 & 반복문
-- 사원 이름을 입력합니다. 받는 급여가 고소득자인지, 중간 소득자, 저 소득자
-- KING, SCOTT
SELECT * FROM emp;

ACCEPT p_ename prompt '사원 이름을 입력하세요 ~ '
DECLARE
-- 변수 선언
v_ename emp.ename%TYPE := upper('&p_ename');
v_sal emp.sal%TYPE;
BEGIN
SELECT sal into v_sal
FROM emp
WHERE ename = v_ename;
DBMS_OUTPUT.PUT_LINE('급여 ' || v_sal);

-- 조건식
IF v_sal >= 3500 THEN
DBMS_OUTPUT.PUT_LINE('고 소득자');
ELSIF v_sal >= 2000 THEN
DBMS_OUTPUT.PUT_LINE('중간 소득자');
ELSE
DBMS_OUTPUT.PUT_LINE('저 소득자');
END IF;
END;

실행) KING

Untitled

반복문

  • 구구단 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
-- 반복문 
-- 구구단!
2 x 1 = 2 = 2 x 1
2 x 2 = 4 = 2 x 2
DECLARE
v_count number(10) := 0;
BEGIN
LOOP
v_count := v_count + 1;
DBMS_OUTPUT.PUT_LINE('2 x ' || v_count || ' = ' || 2 * v_count);
EXIT WHEN v_count = 9;
END LOOP;
END;
  • Reference : 오라클 SQL과 PL/SQL을 다루는 기술

PL/SQL 실습01

PL/SQL 실습02

PL/SQL - ML

Oracle_practice

Oracle 실습-테스트

SQL-Developer

  • SQL - Developer 열기
  • 슬랙에서 dataset 다운로드
  • SQL - Developer 에서 데이터 임포트

SQL 서브쿼리 연습문제

  • 문제 1. 2015년 평균 기대수명보다 높은 모든 정보를 조회하세요.
  • 테이블명 : populations
  • 조건식에 서브쿼리를 설정
  • 메인쿼리 서브쿼리를 설정

답)

1
2
3
4
5
6
SELECT *
FROM populations
WHERE life_expectancy > (SELECT AVG(life_expectancy)
FROM populations
WHERE year = 2015 )
AND year=2015;

실행)

Untitled

  • 문제 2. subquery_countries 테이블에 있는 capital과 매칭되는 cities 테이블의 정보를 조회하라
    • 조회할 컬럼명은 name, country_code, urbanarea_pop

답)

1
2
3
4
5
6
7
8
9
10
SELECT 
name
, country_code
, urbanarea_pop
FROM
cities
WHERE name IN
(SELECT capital
FROM sub_countries)
ORDER BY urbanarea_pop DESC;

실행)

Untitled

  • 문제 3.
  • 조건 1. economies 테이블에서 country code, inflation rate, unemployment rate를 조회한다.
  • 조건 2. inflation rate 오름차순으로 정렬한다.
  • 조건 3. subquery_countries 테이블내 gov_form 컬럼에서
  • Constitutional Monarchy 또는 Republic이 들어간 국가는 제외한다.
  • Select fields
  • 데이터셋

답)

1
2
3
4
5
6
7
8
9
10
11
12
SELECT 
code
, inflation_rate
, unemployment_rate
FROM
economics
WHERE year = 2015
AND code NOT IN (SELECT code
FROM sub_countries
WHERE (gov_form='Republic' OR gov_form LIKE '%Republic%')
)
ORDER BY inflation_rate;

실행)

Untitled

  • 문제 4. 2010년 각 대륙별 inflation_rate가 가장 심한 국가와 inflation_rate를 구하세요.
  • 힌트 1. 아래 쿼리 실행
    SELECT country_name, continent, inflation_rate FROM sub_countries INNER JOIN economics USING (code) WHERE year = 2015;
  • 2015년 기준으로, 각 대륙별 inflation_rate가 가장 높은 나라를 추출하는 코드를 작성한다.
  • inflation_rate가 높은 순

답)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT sc.country_name, sc.continent, ec.inflation_rate
FROM sub_countries sc
INNER JOIN economics ec
ON sc.code = ec.code
WHERE year = 2015
AND inflation_rate IN(
SELECT MAX(inflation_rate) AS max_inf
FROM(
SELECT sc.country_name, sc.continent, ec.inflation_rate
FROM sub_countries sc
INNER JOIN economics ec
-- USING(code) 대신 ON 쿼리를 작성
ON sc.code = ec.code
WHERE year = 2015)
GROUP BY continent
);

실행)

Untitled

SQL 윈도우 함수 연습문제

  • 문제 1. 각 행에 숫자를 1, 2, 3, …, 형태로 추가한다. (row_n 으로 표시)
  • row_n 기준으로 오름차순으로 출력
  • 테이블명에 alias를 적용한다.

실행)

1
2
3
4
SELECT
ROWNUM as row_n
, sm.*
FROM summer_medals sm;

실행)

Untitled

  • 문제 2. 올림픽 년도를 오름차순 순번대로 작성을 한다.
  • 힌트 : 서브쿼리와 윈도우 함수를 이용한다.

답)

1
2
3
4
5
6
7
SELECT
year,
ROW_NUMBER() OVER(ORDER BY YEAR) AS Row_N
FROM(
SELECT DISTINCT Year
FROM summer_medals
)Years;

실행)

Untitled

  • 문제 3.
  • (1) WITH 절 사용하여 각 운동선수들이 획득한 메달 갯수를 내림차순으로 정렬하도록 합니다.
  • (2) (1) 쿼리를 활용하여 그리고 선수들의 랭킹을 추가한다.
  • 상위 5개만 추출 : OFFSET 0 ROWS FETCH NEXT 5 ROWS ONLY
  • WITH AS (1번 쿼리)
  • 2번 쿼리

답)

1
2
3
4
5
6
7
8
9
10
11
12
13
WITH medals AS(
SELECT
Athlete
, COUNT(*) AS Medals
FROM summer_medals
GROUP BY Athlete)
SELECT
medals
, Athlete
, ROW_NUMBER() OVER (ORDER BY Medals DESC) AS ROW_N
FROM medals
ORDER BY Medals DESC
OFFSET 0 ROWS FETCH NEXT 5 ROWS ONLY;

실행)

Untitled

  • 문제 4
  • 다음쿼리를 실행한다.
  • 남자 69KG 역도 경기에서 매년 금메달리스트 조회하도록 합니다.
    SELECT Year, Country AS champion FROM summer_medals WHERE Discipline = 'Weightlifting' AND Event = '69KG' AND Gender = 'Men' AND Medal = 'Gold';
  • 기존 쿼리에서 매년 전년도 챔피언도 같이 조회하도록 합니다.
  • LAG & WITH 절 사용

답)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
WITH Weightlifting_Gold AS (
SELECT
-- Return each year's champions' countries
Year
, Country AS champion
FROM summer_medals
WHERE
Discipline = 'Weightlifting' AND
Event = '69KG' AND
GENDER = 'Men' AND
Medal = 'Gold')
SELECT
Year
, Champion
, LAG(Champion) OVER (ORDER BY Year ASC) AS Last_Champion
FROM Weightlifting_Gold
ORDER BY Year ASC;

실행)

Untitled

  • Reference : 오라클 SQL과 PL/SQL을 다루는 기술

Oracle_practice0

  • p.205 6장 Self Check 6문제
  • p.256~257 7징 Self Check 5문제
1
%load_ext sql
1
%sql oracle://ora_user:evan@127.0.0.1:1521/myoracle
  1. 101번 사원에 대해 아래의 결과를 산출하는 쿼리를 작성해 보자.


    사번 사원명 job명칭 job시작일자 job종료일자 job수행부서명

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
%%sql

SELECT
a.employee_id
, a.emp_name
, d.job_title
, b.start_date
, b.end_date
, c.department_name
FROM employees a
, job_history b
, departments c
, jobs d
WHERE a.employee_id = b.employee_id
AND b.department_id = c.department_id
AND b.job_id = d.job_id
AND a.employee_id = 101
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name job_title start_date end_date department_name
101 Neena Kochhar Public Accountant 1997-09-21 00:00:00 2001-10-27 00:00:00 경리부
101 Neena Kochhar Accounting Manager 2001-10-28 00:00:00 2005-03-15 00:00:00 경리부
  1. 아래의 쿼리를 수행하면 오류가 발생한다. 오류의 원인은 무엇인지 설명해 보자.

입력

select a.employee_id, a.emp_name, b.job_id, b.department_id
  from employees a,
       job_history b
 where a.employee_id      = b.employee_id(+)
   and a.department_id(+) = b.department_id;답 : 외부 조인의 경우, 조인조건에서 데이터가 없는 테이블의 컬럼에만 (+)를 붙여야 한다.
따라서 위 쿼리의 경우, and a.department_id(+) 가 아닌 a.department_id = b.department_id(+)로 고쳐야 한다.3. 외부 조인을 할 때 (+)연산자를 같이 사용할 수 없는데, IN 절에 사용하는 값이 한 개이면 사용할 수 있다. 

그 이유는 무엇인지 설명해 보자.답 :
오라클은 IN 절에 포함된 값을 기준으로 OR로 변환한다.
예를 들어,
department_id IN (10,20,30)은
department_id = 10
OR department_id = 20
OR department_id = 30 으로 바꿔 쓸 수 있다.

그런데 IN절에 값이 1개인 경우, 즉 department_id IN (10)일 경우 department_id=10으로 변환할 수 있으며,
외부조인을 하더라도 값이 1개인 경우는 사용할 수 있다.4. 다음의 쿼리를 ANSI 문법으로 변경해 보자.

입력

SELECT a.department_id, a.department_name
  FROM departments a, employees b
 WHERE a.department_id = b.department_id
   AND b.salary > 3000
ORDER BY a.department_name;
1
2
3
4
5
6
7
8
9
10
%%sql

SELECT
a.department_id
, a.department_name
FROM departments a
INNER JOIN employees b
ON (a.department_id = b.department_id)
WHERE b.salary > 3000
ORDER BY a.department_name
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id department_name
60 IT
60 IT
60 IT
60 IT
60 IT
110 경리부
110 경리부
30 구매/생산부
30 구매/생산부
90 기획부
90 기획부
90 기획부
20 마케팅
20 마케팅
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
50 배송부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
80 영업부
40 인사부
100 자금부
100 자금부
100 자금부
100 자금부
100 자금부
100 자금부
10 총무기획부
70 홍보부
  1. 다음은 연관성 있는 서브 쿼리다. 이를 연관성 없는 서브 쿼리로 변환해 보자.

입력

SELECT a.department_id, a.department_name
 FROM departments a
WHERE EXISTS ( SELECT 1
                 FROM job_history b
                WHERE a.department_id = b.department_id );
1
2
3
4
5
6
7
%%sql

SELECT
a.department_id, a.department_name
FROM departments a
WHERE a.department_id IN(SELECT department_id
FROM job_history)
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id department_name
20 마케팅
50 배송부
60 IT
80 영업부
90 기획부
110 경리부
  1. 연도별 이탈리아 최대매출액과 사원을 작성하는 쿼리를 학습했다.
    이 쿼리를 기준으로 최대매출액 뿐만 아니라 최소매출액과 해당 사원을 조회하는 쿼리를 작성해 보자.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
%%sql

SELECT
emp.years
, emp.employee_id
, emp2.emp_name
, emp.amount_sold
FROM ( SELECT
SUBSTR(a.sales_month, 1, 4) as years
, a.employee_id
, SUM(a.amount_sold) AS amount_sold
FROM
sales a
, customers b
, countries c
WHERE a.cust_id = b.CUST_ID
AND b.country_id = c.COUNTRY_ID
AND c.country_name = 'Italy'
GROUP BY SUBSTR(a.sales_month, 1, 4), a.employee_id
) emp,
( SELECT
years
, MAX(amount_sold) AS max_sold
, MIN(amount_sold) AS min_sold
FROM ( SELECT
SUBSTR(a.sales_month, 1, 4) as years
, a.employee_id
, SUM(a.amount_sold) AS amount_sold
FROM
sales a
, customers b
, countries c
WHERE a.cust_id = b.CUST_ID
AND b.country_id = c.COUNTRY_ID
AND c.country_name = 'Italy'
GROUP BY SUBSTR(a.sales_month, 1, 4), a.employee_id
) K
GROUP BY years
) sale,
employees emp2
WHERE emp.years = sale.years
AND (emp.amount_sold = sale.max_sold OR emp.amount_sold = sale.min_sold)
AND emp.employee_id = emp2.employee_id
ORDER BY years
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
years employee_id emp_name amount_sold
1998 145 John Russell 311761.02
1999 145 John Russell 4646.74
1999 147 Alberto Errazuriz 193319.44
2000 153 Christopher Olsen 142987.82
2000 162 Clara Vishney 16259.5
2001 173 Sundita Kumar 426018.7
2001 148 Gerald Cambrault 1557.54
  • 7장1. 계층형 쿼리 응용편에서 LISTAGG 함수를 사용해 다음과 같이 로우를 컬럼으로 분리했다.

입력

SELECT department_id, LISTAGG(emp_name, ',') WITHIN GROUP (ORDER BY emp_name) as empnames
  FROM employees
 WHERE department_id IS NOT NULL
 GROUP BY department_id;
 

LISTAGG 함수 대신 계층형 쿼리, 분석 함수를 사용해서 위 쿼리와 동일한 결과를 산출하는 쿼리를 작성해 보자.2. 다음 쿼리는 사원 테이블에서 JOB_ID가 ‘SH_CLERK’인 사원을 조회하는 쿼리다.

입력

SELECT employee_id, emp_name, hire_date
  FROM employees
 WHERE job_id = 'SH_CLERK'
ORDER By hire_date;

결과

EMPLOYEE_ID EMP_NAME             HIRE_DATE
----------- -------------------- -------------------
184         Nandita Sarchand     2004/01/27 00:00:00
192         Sarah Bell           2004/02/04 00:00:00
185         Alexis Bull          2005/02/20 00:00:00
193         Britney Everett      2005/03/03 00:00:00
188         Kelly Chung          2005/06/14 00:00:00
....
....
199         Douglas Grant        2008/01/13 00:00:00
183         Girard Geoni         2008/02/03 00:00:00

사원 테이블에서 퇴사일자(retire_date)는 모두 비어 있는데, 위 결과에서 사원번호가 184번인 사원의 퇴사일자는 다음으로 입사일자가 빠른 192번 사원의 입사일자라고 가정해서 다음과 같은 형태로 결과를 추출하도록 쿼리를 작성해 보자(입사일자가 가장 최근인 183번 사원의 퇴사일자는 NULL이다).

결과

EMPLOYEE_ID EMP_NAME             HIRE_DATE            RETIRE_DATE
----------- -------------------- -------------------  ---------------------------
184         Nandita Sarchand     2004/01/27 00:00:00  2004/02/04 00:00:00
192         Sarah Bell           2004/02/04 00:00:00  2005/02/20 00:00:00
185         Alexis Bull          2005/02/20 00:00:00  2005/03/03 00:00:00
193         Britney Everett      2005/03/03 00:00:00  2005/06/14 00:00:00
188         Kelly Chung          2005/06/14 00:00:00  2005/08/13 00:00:00
....
....
199         Douglas Grant        2008/01/13 00:00:00  2008/02/03 00:00:00
183         Girard Geoni         2008/02/03 00:00:003. sales 테이블에는 판매 데이터, customers 테이블에는 고객정보가 있다. 2001년 12월(SALES_MONTH = ‘200112’) 판매 데이터 중 현재일자를 기준으로 고객의 나이(customers.cust_year_of_birth)를 계산해서 다음과 같이 연령대별 매출금액을 보여주는 쿼리를 작성해 보자.

결과

-------------------------
연령대    매출금액
-------------------------
10대      xxxxxx
20대      ....
30대      ....
40대      ....
-------------------------4. 3번 문제를 이용해 월별로 판매금액이 가장 하위에 속하는 대륙 목록을 뽑아보자.

(대륙 목록은 countries 테이블의 country_region에 있으며, country_id 컬럼으로 customers 테이블과 조인을 해서 구한다).

결과

---------------------------------
매출월    지역(대륙)  매출금액
---------------------------------
199801    Oceania      xxxxxx
199803    Oceania      xxxxxx
...
---------------------------------5. 5장 연습문제 5번의 정답 결과를 이용해 다음과 같이 지역별, 대출종류별, 월별 대출잔액과 지역별 파티션을 만들어 대출 종류별 대출잔액의 퍼센트(%)를 구하는 쿼리를 작성해보자.

결과

------------------------------------------------------------------------------------------------
지역    대출종류        201111         201112    201210    201211   201212   203110    201311
------------------------------------------------------------------------------------------------
서울    기타대출       73996.9( 36% )
서울    주택담보대출   130105.9( 64% )
부산
...
...
--------------------------------------------------------------------------------------

Oracle_practice7_2

  • 분석함수 : RANK, DENSE_RANK, LAG, LEAD
  • RANK() OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명)
1
%load_ext sql
The sql extension is already loaded. To reload it, use:
  %reload_ext sql
1
%sql oracle://ora_user:evan@127.0.0.1:1521/myoracle
  • 분석 함수: 분석 함수 역시 특정 그룹별 집계를 담당하므로 집계 함수에 속한다.

  • PARTITION BY 절: 분석 함수로 계산될 대상 로우의 그룹(파티션)을 지정한다.

  • ORDER BY 절: 파티션 안에서의 순서를 지정한다.

  • WINDOW 절: 파티션으로 분할된 그룹에 대해서 더 상세한 그룹으로 분할할 때 사용된다. # Window 절

  • ROWS: 로우 단위로 window 절을 지정한다.

  • RANGE: 로우가 아닌 논리적인 범위로 window 절을 지정한다.

  • BETWEEN~AND: window 절의 시작과 끝 지점을 명시한다.
    BETWEEN을 명시하지 않고 두 번째 옵션만 지정하면이 지점이 시작 지점이 되고 끝 지점은 현재 로우가 된다.

  • UNBOUNDED PRECEDING: 파티션으로 구분된 첫 번째 로우가 시작 지점이 된다.

  • UNBOUNDED FOLLOWING: 파티션으로 구분된 마지막 로우가 끝 지점이 된다.

  • CURRENT ROW: 시작 및 끝 지점이 현재 로우가된다.

  • value_expr PRECEDING: 끝 지점일 경우, 시작 지점은 value_expr PRECEDING.

  • value_expr FOLLOWING: 시작 지점일 경우, 끝 지점은 value_expr FOLLOWING.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
%%sql

SELECT
department_id
, emp_name
, hire_date
, salary
, SUM(salary) OVER (PARTITION BY department_id
ORDER BY hire_date
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS all_salary
, SUM(salary) OVER (PARTITION BY department_id
ORDER BY hire_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS first_current_sal
, SUM(salary) OVER (PARTITION BY department_id
ORDER BY hire_date
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS current_end_sal
FROM employees
WHERE department_id IN (30, 90)
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id emp_name hire_date salary all_salary first_current_sal current_end_sal
30 Den Raphaely 2002-12-07 00:00:00 11000 24900 11000 24900
30 Alexander Khoo 2003-05-18 00:00:00 3100 24900 14100 13900
30 Sigal Tobias 2005-07-24 00:00:00 2800 24900 16900 10800
30 Shelli Baida 2005-12-24 00:00:00 2900 24900 19800 8000
30 Guy Himuro 2006-11-15 00:00:00 2600 24900 22400 5100
30 Karen Colmenares 2007-08-10 00:00:00 2500 24900 24900 2500
90 Lex De Haan 2001-01-13 00:00:00 17000 58000 17000 58000
90 Steven King 2003-06-17 00:00:00 24000 58000 41000 41000
90 Neena Kochhar 2005-09-21 00:00:00 17000 58000 58000 17000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
%%sql

SELECT
department_id
, emp_name
, hire_date
, salary
, FIRST_VALUE(salary) OVER (PARTITION BY department_id
ORDER BY hire_date
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS all_salary
, FIRST_VALUE(salary) OVER (PARTITION BY department_id
ORDER BY hire_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS first_current_sal
, FIRST_VALUE(salary) OVER (PARTITION BY department_id
ORDER BY hire_date
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS current_end_sal
FROM employees
WHERE department_id IN (30, 90)
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id emp_name hire_date salary all_salary first_current_sal current_end_sal
30 Den Raphaely 2002-12-07 00:00:00 11000 11000 11000 11000
30 Alexander Khoo 2003-05-18 00:00:00 3100 11000 11000 3100
30 Sigal Tobias 2005-07-24 00:00:00 2800 11000 11000 2800
30 Shelli Baida 2005-12-24 00:00:00 2900 11000 11000 2900
30 Guy Himuro 2006-11-15 00:00:00 2600 11000 11000 2600
30 Karen Colmenares 2007-08-10 00:00:00 2500 11000 11000 2500
90 Lex De Haan 2001-01-13 00:00:00 17000 17000 17000 17000
90 Steven King 2003-06-17 00:00:00 24000 17000 17000 24000
90 Neena Kochhar 2005-09-21 00:00:00 17000 17000 17000 17000
  • p.211
  • 계층형 쿼리
  • 핵심 포인트 : CONNECT BY 조건문 정리- 계층형 쿼리의 구문은 다음과 같다.

SELECT expr1, expr2, …
FROM 테이블
WHERE 조건
START WITH[최상위 조건]
CONNECT BY [NOCYCLE][PRIOR 계층형 구조 조건]; –> 구조 : CONNECT BY PRIOR 하위 = 상위

  • START WITH 조건

    • 계층형 구조에서 최상위 계층의 로우를 식별하는 조건을 명시한다.
    • START WITH가 시작한다는 의미이므로, 이 조건에 맞는 로우부터 시작해 계층형 구조를 풀어 나간다.
  • CONNECT BY 조건

    • 계층형 구조가 어떤 식으로 연결되는지를 기술하는 부분이다.
    • 부서 테이블은 parent_id에 상위 부서 정보를 갖고 있는데,
      이를 표현하려면 ‘CONNECT BY PRIOR department_id = parent_id’로 기술해야 한다.
    • PRIOR는 계층형 쿼리에서만 사용할 수 있는 연산자로 ‘앞서의, 직전의’란 뜻이 있으므로,
      “이전 department_id = parent_id”라고 알아두면 이해하기 쉬울 것이다.
    • 또한 ‘CONNECT BY parent_id = PRIOR department_id’처럼 PRIOR의 위치를 바꿀 수 있다.
1
2
3
4
5
6
7
8
9
%%sql

SELECT
department_id
, LPAD(' ', 3*(LEVEL-1)) || department_name
, LEVEL
FROM departments
START WITH parent_id IS NULL
CONNECT BY PRIOR department_id = parent_id
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id LPAD('',3*(LEVEL-1))||DEPARTMENT_NAME LEVEL
10 총무기획부 1
20    마케팅 2
30    구매/생산부 2
170       생산팀 3
180       건설팀 3
200       운영팀 3
210       IT 지원 3
220       NOC 3
40    인사부 2
260       채용팀 3
50    배송부 2
80    영업부 2
190       계약팀 3
240       공공 판매사업팀 3
250       판매팀 3
90    기획부 2
60       IT 3
230          IT 헬프데스크 4
70       홍보부 3
100       자금부 3
130          세무팀 4
140          신용관리팀 4
150          주식관리팀 4
160          수익관리팀 4
110       경리부 3
120          재무팀 4
270          급여팀 4
  • manager_id는 해당 사원의 매니저 사번이 있다.
  • 각 매니저는 사원 ID가 있다.
  • 사원별 계층 구조를 만들고, 부서 테이블과 조인해서 부서명까지 조회한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
%%sql

SELECT
a.employee_id
, LPAD(' ', 3 * (LEVEL - 1)) || a.emp_name
, LEVEL
, b.department_name
FROM
employees a
, departments b
WHERE a.department_id = b.department_id
START WITH a.manager_id IS NULL
CONNECT BY PRIOR a.employee_id = a.manager_id
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id LPAD('',3*(LEVEL-1))||A.EMP_NAME LEVEL department_name
100 Steven King 1 기획부
101    Neena Kochhar 2 기획부
108       Nancy Greenberg 3 자금부
109          Daniel Faviet 4 자금부
110          John Chen 4 자금부
111          Ismael Sciarra 4 자금부
112          Jose Manuel Urman 4 자금부
113          Luis Popp 4 자금부
200       Jennifer Whalen 3 총무기획부
203       Susan Mavris 3 인사부
204       Hermann Baer 3 홍보부
205       Shelley Higgins 3 경리부
206          William Gietz 4 경리부
102    Lex De Haan 2 기획부
103       Alexander Hunold 3 IT
104          Bruce Ernst 4 IT
105          David Austin 4 IT
106          Valli Pataballa 4 IT
107          Diana Lorentz 4 IT
114    Den Raphaely 2 구매/생산부
115       Alexander Khoo 3 구매/생산부
116       Shelli Baida 3 구매/생산부
117       Sigal Tobias 3 구매/생산부
118       Guy Himuro 3 구매/생산부
119       Karen Colmenares 3 구매/생산부
120    Matthew Weiss 2 배송부
125       Julia Nayer 3 배송부
126       Irene Mikkilineni 3 배송부
127       James Landry 3 배송부
128       Steven Markle 3 배송부
180       Winston Taylor 3 배송부
181       Jean Fleaur 3 배송부
182       Martha Sullivan 3 배송부
183       Girard Geoni 3 배송부
121    Adam Fripp 2 배송부
129       Laura Bissot 3 배송부
130       Mozhe Atkinson 3 배송부
131       James Marlow 3 배송부
132       TJ Olson 3 배송부
184       Nandita Sarchand 3 배송부
185       Alexis Bull 3 배송부
186       Julia Dellinger 3 배송부
187       Anthony Cabrio 3 배송부
122    Payam Kaufling 2 배송부
133       Jason Mallin 3 배송부
134       Michael Rogers 3 배송부
135       Ki Gee 3 배송부
136       Hazel Philtanker 3 배송부
188       Kelly Chung 3 배송부
189       Jennifer Dilly 3 배송부
190       Timothy Gates 3 배송부
191       Randall Perkins 3 배송부
123    Shanta Vollman 2 배송부
137       Renske Ladwig 3 배송부
138       Stephen Stiles 3 배송부
139       John Seo 3 배송부
140       Joshua Patel 3 배송부
192       Sarah Bell 3 배송부
193       Britney Everett 3 배송부
194       Samuel McCain 3 배송부
195       Vance Jones 3 배송부
124    Kevin Mourgos 2 배송부
141       Trenna Rajs 3 배송부
142       Curtis Davies 3 배송부
143       Randall Matos 3 배송부
144       Peter Vargas 3 배송부
196       Alana Walsh 3 배송부
197       Kevin Feeney 3 배송부
198       Donald OConnell 3 배송부
199       Douglas Grant 3 배송부
145    John Russell 2 영업부
150       Peter Tucker 3 영업부
151       David Bernstein 3 영업부
152       Peter Hall 3 영업부
153       Christopher Olsen 3 영업부
154       Nanette Cambrault 3 영업부
155       Oliver Tuvault 3 영업부
146    Karen Partners 2 영업부
156       Janette King 3 영업부
157       Patrick Sully 3 영업부
158       Allan McEwen 3 영업부
159       Lindsey Smith 3 영업부
160       Louise Doran 3 영업부
161       Sarath Sewall 3 영업부
147    Alberto Errazuriz 2 영업부
162       Clara Vishney 3 영업부
163       Danielle Greene 3 영업부
164       Mattea Marvins 3 영업부
165       David Lee 3 영업부
166       Sundar Ande 3 영업부
167       Amit Banda 3 영업부
148    Gerald Cambrault 2 영업부
168       Lisa Ozer 3 영업부
169       Harrison Bloom 3 영업부
170       Tayler Fox 3 영업부
171       William Smith 3 영업부
172       Elizabeth Bates 3 영업부
173       Sundita Kumar 3 영업부
149    Eleni Zlotkey 2 영업부
174       Ellen Abel 3 영업부
175       Alyssa Hutton 3 영업부
176       Jonathon Taylor 3 영업부
177       Jack Livingston 3 영업부
179       Charles Johnson 3 영업부
201    Michael Hartstein 2 마케팅
202       Pat Fay 3 마케팅
  • CONNECT BY ~ AND : AND를 통해 추가로 조건을 붙인다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
%%sql

SELECT
a.employee_id
, LPAD(' ', 3 * (LEVEL - 1)) || a.emp_name
, LEVEL
, b.department_name
FROM
employees a
, departments b
WHERE a.department_id = b.department_id
START WITH a.manager_id IS NULL
CONNECT BY PRIOR a.employee_id = a.manager_id
AND a.department_id = 30
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id LPAD('',3*(LEVEL-1))||A.EMP_NAME LEVEL department_name
100 Steven King 1 기획부
114    Den Raphaely 2 구매/생산부
115       Alexander Khoo 3 구매/생산부
116       Shelli Baida 3 구매/생산부
117       Sigal Tobias 3 구매/생산부
118       Guy Himuro 3 구매/생산부
119       Karen Colmenares 3 구매/생산부
  • CONNECT BY PRIOR 자식컬럼 = 부모컬럼 : 부모에서 자식으로 트리 구성 (TOP DOWN) -> 일반적인 구조
  • CONNECT BY PRIOR 부모컬럼 = 자식컬럼 : 자식에서 부모로 트리 구성 (Bottom UP)
  • CONNECT BY NOCYCLE PRIOR = 무한루프 방지- p.226 WITH 절
  • kor_loan_status 테이블에서 연도별 최종월 기준 가장 대출이 많은 도시와 잔액을 구한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
%%sql

SELECT b2.*
FROM ( SELECT period, region, sum(loan_jan_amt) jan_amt
FROM kor_loan_status
GROUP BY period, region
) b2,
( SELECT b.period, MAX(b.jan_amt) max_jan_amt
FROM ( SELECT period, region, sum(loan_jan_amt) jan_amt
FROM kor_loan_status
GROUP BY period, region
) b,
( SELECT MAX(PERIOD) max_month
FROM kor_loan_status
GROUP BY SUBSTR(PERIOD, 1, 4)
) a
WHERE b.period = a.max_month
GROUP BY b.period
) c
WHERE b2.period = c.period
AND b2.jan_amt = c.max_jan_amt
ORDER BY 1
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
period region jan_amt
201112 서울 334728.3
201212 서울 331572.3
201311 서울 334062.7
1
- WITH 절은 별칭으로 사용한 SELECT 문의 FROM 절에 다른 SELECT 구문의 별칭 참조가 가능하다.
  • WITH 동일 구문 반복 사용 시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
%%sql

WITH b2 AS (SELECT period, region, sum(loan_jan_amt) jan_amt
FROM kor_loan_status
GROUP BY period, region)
, c AS (SELECT b.period, MAX(b.jan_amt) max_jan_amt
FROM (SELECT period, region, sum(loan_jan_amt) jan_amt
FROM kor_loan_status
GROUP BY period, region) b
, (SELECT MAX(PERIOD) max_month
FROM kor_loan_status
GROUP BY SUBSTR(PERIOD, 1, 4)
) a
WHERE b.period = a.max_month
GROUP BY b.period
) -- AS SELECT
SELECT b2.*
FROM b2, c
WHERE b2.period = c.period
AND b2.jan_amt = c.max_jan_amt
ORDER BY 1
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
period region jan_amt
201112 서울 334728.3
201212 서울 331572.3
201311 서울 334062.7
  • Reference : 오라클 SQL과 PL/SQK을 다루는 기술

Oracle_practice7

1
2
3
4
5
- WINDOW Function
- 분석 함수 : 특정 그룹별 집계를 담당함
함수의 종류

- PARTITION BY : 분석 함수로 계산될 대상 row의 그룹(파티션)을 지정
1
%load_ext sql
1
%sql oracle://ora_user:evan@127.0.0.1:1521/myoracle
  • 윈도우 함수

  • ROW_NUMBER()

1
2
3
4
5
6
7
8
%%sql

SELECT
department_id
, emp_name
, ROW_NUMBER() OVER(PARTITION BY department_id
ORDER BY department_id, emp_name) dep_rows
FROM employees
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id emp_name dep_rows
10 Jennifer Whalen 1
20 Michael Hartstein 1
20 Pat Fay 2
30 Alexander Khoo 1
30 Den Raphaely 2
30 Guy Himuro 3
30 Karen Colmenares 4
30 Shelli Baida 5
30 Sigal Tobias 6
40 Susan Mavris 1
50 Adam Fripp 1
50 Alana Walsh 2
50 Alexis Bull 3
50 Anthony Cabrio 4
50 Britney Everett 5
50 Curtis Davies 6
50 Donald OConnell 7
50 Douglas Grant 8
50 Girard Geoni 9
50 Hazel Philtanker 10
50 Irene Mikkilineni 11
50 James Landry 12
50 James Marlow 13
50 Jason Mallin 14
50 Jean Fleaur 15
50 Jennifer Dilly 16
50 John Seo 17
50 Joshua Patel 18
50 Julia Dellinger 19
50 Julia Nayer 20
50 Kelly Chung 21
50 Kevin Feeney 22
50 Kevin Mourgos 23
50 Ki Gee 24
50 Laura Bissot 25
50 Martha Sullivan 26
50 Matthew Weiss 27
50 Michael Rogers 28
50 Mozhe Atkinson 29
50 Nandita Sarchand 30
50 Payam Kaufling 31
50 Peter Vargas 32
50 Randall Matos 33
50 Randall Perkins 34
50 Renske Ladwig 35
50 Samuel McCain 36
50 Sarah Bell 37
50 Shanta Vollman 38
50 Stephen Stiles 39
50 Steven Markle 40
50 TJ Olson 41
50 Timothy Gates 42
50 Trenna Rajs 43
50 Vance Jones 44
50 Winston Taylor 45
60 Alexander Hunold 1
60 Bruce Ernst 2
60 David Austin 3
60 Diana Lorentz 4
60 Valli Pataballa 5
70 Hermann Baer 1
80 Alberto Errazuriz 1
80 Allan McEwen 2
80 Alyssa Hutton 3
80 Amit Banda 4
80 Charles Johnson 5
80 Christopher Olsen 6
80 Clara Vishney 7
80 Danielle Greene 8
80 David Bernstein 9
80 David Lee 10
80 Eleni Zlotkey 11
80 Elizabeth Bates 12
80 Ellen Abel 13
80 Gerald Cambrault 14
80 Harrison Bloom 15
80 Jack Livingston 16
80 Janette King 17
80 John Russell 18
80 Jonathon Taylor 19
80 Karen Partners 20
80 Lindsey Smith 21
80 Lisa Ozer 22
80 Louise Doran 23
80 Mattea Marvins 24
80 Nanette Cambrault 25
80 Oliver Tuvault 26
80 Patrick Sully 27
80 Peter Hall 28
80 Peter Tucker 29
80 Sarath Sewall 30
80 Sundar Ande 31
80 Sundita Kumar 32
80 Tayler Fox 33
80 William Smith 34
90 Lex De Haan 1
90 Neena Kochhar 2
90 Steven King 3
100 Daniel Faviet 1
100 Ismael Sciarra 2
100 John Chen 3
100 Jose Manuel Urman 4
100 Luis Popp 5
100 Nancy Greenberg 6
110 Shelley Higgins 1
110 William Gietz 2
None Kimberely Grant 1
  • RANK(), DENSE_RANK()
1
2
3
4
5
6
7
8
9
10
11
%%sql

SELECT
department_id
, emp_name
, salary
, RANK() OVER (PARTITION BY department_id
ORDER BY salary) dep_rank
, DENSE_RANK() OVER (PARTITION BY department_id
ORDER BY salary) dep_denserank
FROM employees
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id emp_name salary dep_rank dep_denserank
10 Jennifer Whalen 4400 1 1
20 Pat Fay 6000 1 1
20 Michael Hartstein 13000 2 2
30 Karen Colmenares 2500 1 1
30 Guy Himuro 2600 2 2
30 Sigal Tobias 2800 3 3
30 Shelli Baida 2900 4 4
30 Alexander Khoo 3100 5 5
30 Den Raphaely 11000 6 6
40 Susan Mavris 6500 1 1
50 TJ Olson 2100 1 1
50 Steven Markle 2200 2 2
50 Hazel Philtanker 2200 2 2
50 Ki Gee 2400 4 3
50 James Landry 2400 4 3
50 Randall Perkins 2500 6 4
50 Martha Sullivan 2500 6 4
50 Joshua Patel 2500 6 4
50 Peter Vargas 2500 6 4
50 James Marlow 2500 6 4
50 Donald OConnell 2600 11 5
50 Douglas Grant 2600 11 5
50 Randall Matos 2600 11 5
50 John Seo 2700 14 6
50 Irene Mikkilineni 2700 14 6
50 Mozhe Atkinson 2800 16 7
50 Vance Jones 2800 16 7
50 Girard Geoni 2800 16 7
50 Michael Rogers 2900 19 8
50 Timothy Gates 2900 19 8
50 Kevin Feeney 3000 21 9
50 Anthony Cabrio 3000 21 9
50 Jean Fleaur 3100 23 10
50 Curtis Davies 3100 23 10
50 Alana Walsh 3100 23 10
50 Stephen Stiles 3200 26 11
50 Winston Taylor 3200 26 11
50 Julia Nayer 3200 26 11
50 Samuel McCain 3200 26 11
50 Laura Bissot 3300 30 12
50 Jason Mallin 3300 30 12
50 Julia Dellinger 3400 32 13
50 Trenna Rajs 3500 33 14
50 Renske Ladwig 3600 34 15
50 Jennifer Dilly 3600 34 15
50 Kelly Chung 3800 36 16
50 Britney Everett 3900 37 17
50 Sarah Bell 4000 38 18
50 Alexis Bull 4100 39 19
50 Nandita Sarchand 4200 40 20
50 Kevin Mourgos 5800 41 21
50 Shanta Vollman 6500 42 22
50 Payam Kaufling 7900 43 23
50 Matthew Weiss 8000 44 24
50 Adam Fripp 8200 45 25
60 Diana Lorentz 4200 1 1
60 Valli Pataballa 4800 2 2
60 David Austin 4800 2 2
60 Bruce Ernst 6000 4 3
60 Alexander Hunold 9000 5 4
70 Hermann Baer 10000 1 1
80 Sundita Kumar 6100 1 1
80 Charles Johnson 6200 2 2
80 Amit Banda 6200 2 2
80 Sundar Ande 6400 4 3
80 David Lee 6800 5 4
80 Oliver Tuvault 7000 6 5
80 Sarath Sewall 7000 6 5
80 Mattea Marvins 7200 8 6
80 Elizabeth Bates 7300 9 7
80 William Smith 7400 10 8
80 Nanette Cambrault 7500 11 9
80 Louise Doran 7500 11 9
80 Lindsey Smith 8000 13 10
80 Christopher Olsen 8000 13 10
80 Jack Livingston 8400 15 11
80 Jonathon Taylor 8600 16 12
80 Alyssa Hutton 8800 17 13
80 Allan McEwen 9000 18 14
80 Peter Hall 9000 18 14
80 Danielle Greene 9500 20 15
80 Patrick Sully 9500 20 15
80 David Bernstein 9500 20 15
80 Tayler Fox 9600 23 16
80 Janette King 10000 24 17
80 Peter Tucker 10000 24 17
80 Harrison Bloom 10000 24 17
80 Eleni Zlotkey 10500 27 18
80 Clara Vishney 10500 27 18
80 Gerald Cambrault 11000 29 19
80 Ellen Abel 11000 29 19
80 Lisa Ozer 11500 31 20
80 Alberto Errazuriz 12000 32 21
80 Karen Partners 13500 33 22
80 John Russell 14000 34 23
90 Lex De Haan 17000 1 1
90 Neena Kochhar 17000 1 1
90 Steven King 24000 3 2
100 Luis Popp 6900 1 1
100 Ismael Sciarra 7700 2 2
100 Jose Manuel Urman 7800 3 3
100 John Chen 8200 4 4
100 Daniel Faviet 9000 5 5
100 Nancy Greenberg 12008 6 6
110 William Gietz 8300 1 1
110 Shelley Higgins 12008 2 2
None Kimberely Grant 7000 1 1
  • CUME_DIST & PERCENT_RANK
  • CUME_DIST : 주어진 그룹에 대한 상대 누적 분포도값
  • 분포도 값(비율) 반환 값의 범위 0초와 1이하 사이의 값 반환
1
2
3
4
5
6
7
8
%%sql

SELECT
department_id
, emp_name
, CUME_DIST() over (PARTITION BY department_id
ORDER BY salary) dep_dist
FROM employees
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id emp_name dep_dist
10 Jennifer Whalen 1
20 Pat Fay 0.5
20 Michael Hartstein 1
30 Karen Colmenares 0.1666666666666666666666666666666666666667
30 Guy Himuro 0.3333333333333333333333333333333333333333
30 Sigal Tobias 0.5
30 Shelli Baida 0.6666666666666666666666666666666666666667
30 Alexander Khoo 0.8333333333333333333333333333333333333333
30 Den Raphaely 1
40 Susan Mavris 1
50 TJ Olson 0.0222222222222222222222222222222222222222
50 Steven Markle 0.0666666666666666666666666666666666666667
50 Hazel Philtanker 0.0666666666666666666666666666666666666667
50 Ki Gee 0.1111111111111111111111111111111111111111
50 James Landry 0.1111111111111111111111111111111111111111
50 Randall Perkins 0.2222222222222222222222222222222222222222
50 Martha Sullivan 0.2222222222222222222222222222222222222222
50 Joshua Patel 0.2222222222222222222222222222222222222222
50 Peter Vargas 0.2222222222222222222222222222222222222222
50 James Marlow 0.2222222222222222222222222222222222222222
50 Donald OConnell 0.2888888888888888888888888888888888888889
50 Douglas Grant 0.2888888888888888888888888888888888888889
50 Randall Matos 0.2888888888888888888888888888888888888889
50 John Seo 0.3333333333333333333333333333333333333333
50 Irene Mikkilineni 0.3333333333333333333333333333333333333333
50 Mozhe Atkinson 0.4
50 Vance Jones 0.4
50 Girard Geoni 0.4
50 Michael Rogers 0.4444444444444444444444444444444444444444
50 Timothy Gates 0.4444444444444444444444444444444444444444
50 Kevin Feeney 0.4888888888888888888888888888888888888889
50 Anthony Cabrio 0.4888888888888888888888888888888888888889
50 Jean Fleaur 0.5555555555555555555555555555555555555556
50 Curtis Davies 0.5555555555555555555555555555555555555556
50 Alana Walsh 0.5555555555555555555555555555555555555556
50 Stephen Stiles 0.6444444444444444444444444444444444444444
50 Winston Taylor 0.6444444444444444444444444444444444444444
50 Julia Nayer 0.6444444444444444444444444444444444444444
50 Samuel McCain 0.6444444444444444444444444444444444444444
50 Laura Bissot 0.6888888888888888888888888888888888888889
50 Jason Mallin 0.6888888888888888888888888888888888888889
50 Julia Dellinger 0.7111111111111111111111111111111111111111
50 Trenna Rajs 0.7333333333333333333333333333333333333333
50 Renske Ladwig 0.7777777777777777777777777777777777777778
50 Jennifer Dilly 0.7777777777777777777777777777777777777778
50 Kelly Chung 0.8
50 Britney Everett 0.8222222222222222222222222222222222222222
50 Sarah Bell 0.8444444444444444444444444444444444444444
50 Alexis Bull 0.8666666666666666666666666666666666666667
50 Nandita Sarchand 0.8888888888888888888888888888888888888889
50 Kevin Mourgos 0.9111111111111111111111111111111111111111
50 Shanta Vollman 0.9333333333333333333333333333333333333333
50 Payam Kaufling 0.9555555555555555555555555555555555555556
50 Matthew Weiss 0.9777777777777777777777777777777777777778
50 Adam Fripp 1
60 Diana Lorentz 0.2
60 Valli Pataballa 0.6
60 David Austin 0.6
60 Bruce Ernst 0.8
60 Alexander Hunold 1
70 Hermann Baer 1
80 Sundita Kumar 0.0294117647058823529411764705882352941176
80 Charles Johnson 0.0882352941176470588235294117647058823529
80 Amit Banda 0.0882352941176470588235294117647058823529
80 Sundar Ande 0.1176470588235294117647058823529411764706
80 David Lee 0.1470588235294117647058823529411764705882
80 Oliver Tuvault 0.2058823529411764705882352941176470588235
80 Sarath Sewall 0.2058823529411764705882352941176470588235
80 Mattea Marvins 0.2352941176470588235294117647058823529412
80 Elizabeth Bates 0.2647058823529411764705882352941176470588
80 William Smith 0.2941176470588235294117647058823529411765
80 Nanette Cambrault 0.3529411764705882352941176470588235294118
80 Louise Doran 0.3529411764705882352941176470588235294118
80 Lindsey Smith 0.4117647058823529411764705882352941176471
80 Christopher Olsen 0.4117647058823529411764705882352941176471
80 Jack Livingston 0.4411764705882352941176470588235294117647
80 Jonathon Taylor 0.4705882352941176470588235294117647058824
80 Alyssa Hutton 0.5
80 Allan McEwen 0.5588235294117647058823529411764705882353
80 Peter Hall 0.5588235294117647058823529411764705882353
80 Danielle Greene 0.6470588235294117647058823529411764705882
80 Patrick Sully 0.6470588235294117647058823529411764705882
80 David Bernstein 0.6470588235294117647058823529411764705882
80 Tayler Fox 0.6764705882352941176470588235294117647059
80 Janette King 0.7647058823529411764705882352941176470588
80 Peter Tucker 0.7647058823529411764705882352941176470588
80 Harrison Bloom 0.7647058823529411764705882352941176470588
80 Eleni Zlotkey 0.8235294117647058823529411764705882352941
80 Clara Vishney 0.8235294117647058823529411764705882352941
80 Gerald Cambrault 0.8823529411764705882352941176470588235294
80 Ellen Abel 0.8823529411764705882352941176470588235294
80 Lisa Ozer 0.9117647058823529411764705882352941176471
80 Alberto Errazuriz 0.9411764705882352941176470588235294117647
80 Karen Partners 0.9705882352941176470588235294117647058824
80 John Russell 1
90 Lex De Haan 0.6666666666666666666666666666666666666667
90 Neena Kochhar 0.6666666666666666666666666666666666666667
90 Steven King 1
100 Luis Popp 0.1666666666666666666666666666666666666667
100 Ismael Sciarra 0.3333333333333333333333333333333333333333
100 Jose Manuel Urman 0.5
100 John Chen 0.6666666666666666666666666666666666666667
100 Daniel Faviet 0.8333333333333333333333333333333333333333
100 Nancy Greenberg 1
110 William Gietz 0.5
110 Shelley Higgins 1
None Kimberely Grant 1
  • NTILE 함수
  • NTILE(4) 값을 4등분 함
1
2
3
4
5
6
7
8
9
10
%%sql

SELECT
department_id
, emp_name
, salary
, NTILE(4) OVER (PARTITION BY department_id
ORDER BY salary) NTILES
FROM employees
WHERE department_id IN (30, 60)
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id emp_name salary ntiles
30 Karen Colmenares 2500 1
30 Guy Himuro 2600 1
30 Sigal Tobias 2800 2
30 Shelli Baida 2900 2
30 Alexander Khoo 3100 3
30 Den Raphaely 11000 4
60 Diana Lorentz 4200 1
60 Valli Pataballa 4800 1
60 David Austin 4800 2
60 Bruce Ernst 6000 3
60 Alexander Hunold 9000 4
  • LAG : 선행 로우의 값을 참조한다.
  • LEAD : 후행 로우의 값 참조
1
2
3
4
5
6
7
8
9
10
%%sql

SELECT
emp_name
, hire_date
, salary
, LAG(salary, 1, 0) OVER (ORDER BY hire_date) AS prev_sal
, LEAD(salary, 1, 0) OVER (ORDER BY hire_date) AS next_sal
FROM employees
WHERE department_id = 30
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
emp_name hire_date salary prev_sal next_sal
Den Raphaely 2002-12-07 00:00:00 11000 0 3100
Alexander Khoo 2003-05-18 00:00:00 3100 11000 2800
Sigal Tobias 2005-07-24 00:00:00 2800 3100 2900
Shelli Baida 2005-12-24 00:00:00 2900 2800 2600
Guy Himuro 2006-11-15 00:00:00 2600 2900 2500
Karen Colmenares 2007-08-10 00:00:00 2500 2600 0
  • Reference : 오라클 SQL과 PL/SQL을 다루는 기술

Oracle_practice6_3

  • 6장 조인과 서브쿼리/후반
1
%load_ext sql
1
%sql oracle://ora_user:evan@127.0.0.1:1521/myoracle
  • p.198
  • 기획부 산하에 있는 부서에 속한 사원의 평균급여보다 많은 급여를 받는 사원- 서브쿼리
  • 오전 : WHERE, SELECT
  • 오후 : FROM
  • 기획부 : 부서 테이블
  • 급여 : 사원 테이블

SELECT
a.employee_id
, a.emp_name
, b.department_id
, b.department_name
FROM
employees a
, departments b
(서브쿼리) d – 기획부 평균급여
WHERE a.deartment_id = b.department_id
AND a.salary > d.avg_salary

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
%%sql

SELECT
a.employee_id
, a.emp_name
, b.department_id
, b.department_name
FROM
employees a
, departments b
, (SELECT AVG(c.salary) AS avg_salary
FROM
departments b
, employees c
WHERE b.parent_id = 90
AND b.department_id = c.department_id) d
WHERE a.department_id = b.department_id
AND a.salary > d.avg_salary
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name department_id department_name
201 Michael Hartstein 20 마케팅
114 Den Raphaely 30 구매/생산부
120 Matthew Weiss 50 배송부
121 Adam Fripp 50 배송부
103 Alexander Hunold 60 IT
204 Hermann Baer 70 홍보부
145 John Russell 80 영업부
146 Karen Partners 80 영업부
147 Alberto Errazuriz 80 영업부
148 Gerald Cambrault 80 영업부
149 Eleni Zlotkey 80 영업부
150 Peter Tucker 80 영업부
151 David Bernstein 80 영업부
152 Peter Hall 80 영업부
153 Christopher Olsen 80 영업부
156 Janette King 80 영업부
157 Patrick Sully 80 영업부
158 Allan McEwen 80 영업부
159 Lindsey Smith 80 영업부
162 Clara Vishney 80 영업부
163 Danielle Greene 80 영업부
168 Lisa Ozer 80 영업부
169 Harrison Bloom 80 영업부
170 Tayler Fox 80 영업부
174 Ellen Abel 80 영업부
175 Alyssa Hutton 80 영업부
176 Jonathon Taylor 80 영업부
177 Jack Livingston 80 영업부
100 Steven King 90 기획부
101 Neena Kochhar 90 기획부
102 Lex De Haan 90 기획부
108 Nancy Greenberg 100 자금부
109 Daniel Faviet 100 자금부
110 John Chen 100 자금부
205 Shelley Higgins 110 경리부
206 William Gietz 110 경리부
1
2
3
4
5
6
7
8
%%sql

SELECT AVG(c.salary) AS avg_salary
FROM
departments b
, employees c
WHERE b.parent_id = 90
AND b.department_id = c.department_id
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
avg_salary
7908.285714285714285714285714285714285714
  • p.200
  • 2000년 이탈리아 평균 매출액(연평균)보다 큰 월의 평균 매출액은 구함
  • 첫 번째 서브쿼리 : 월 평균 매출 구하는 것
  • 두 번째 서브쿼리 : 연평균 매출액을 구하는 것%%sql

SELECT a.*
FROM
(서브쿼리) a – 월 평균 매출액
, (서브쿼리) b – 연 평균 매출액
WHERE a.month_avg>b.year_avg – 연 평균 이상의 월 평균을 구한다.- 이 쿼리는 두 개의 서브 쿼리를 FROM 절에 위치시켰다.

  • 2000년 이탈리아 평균 매출액(연평균)보다 큰 달의 평균 매출액을 구해야 한다.
  • 첫 번째 서브 쿼리에서는 월별 평균 매출액을, 두 번째 서브 쿼리에서는 연평균 매출액을 구한다.
    그 다음에 ‘월 평균 매출액 > 연 평균 매출액’ 조건을 만족하는 월 평균매출액을 출력한다.
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
%%sql

SELECT a.*
FROM
(SELECT a.sales_month, ROUND(AVG(a.amount_sold)) month_avg
FROM
sales a
, customers b
, countries c
WHERE a.sales_month BETWEEN '200001' AND '200012'
AND a.cust_id = b.CUST_ID
AND b.COUNTRY_ID = c.COUNTRY_ID
AND c.COUNTRY_NAME = 'Italy'
GROUP BY a.sales_month ) a
, (SELECT
ROUND(AVG(a.amount_sold)) AS year_avg
FROM
sales a
, customers b
, countries c
WHERE a.sales_month BETWEEN '200001' AND '200012'
AND a.cust_id = b.CUST_ID
AND b.COUNTRY_ID = c.COUNTRY_ID
AND c.COUNTRY_NAME = 'Italy') b
WHERE a.month_avg>b.year_avg
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
sales_month month_avg
200002 137
200007 122
200009 110
200012 184
  • ERD 참고
    ERD_000.jpg

  • p.200

  • 복잡한 쿼리 작성법 예시

  • (1), (2) –> 메인쿼리 작성

  • (3), (4) –> 서브쿼리 작성 후 합치기

  • 연도별로 이탈리아 매출 데이터를 살펴

  • 매출실적이 가장 많은 사원의 목록과 매출액을 구하라

  • 연도, 최대매출사원, 최대매출액

  • 이탈리아 찾기 : countries

  • 이탈리아 고객 : customers

  • 매출 : sales

  • 사원정보 : employees

  • (1) 연도, 사원별 이탈리아 매출액 구하기

  • 이탈리아 고객 찾기 : customers, countries country_id로 조인

  • 이탈리아 매출 찾기 : 위 결과와 sales 테이블을 cust_id로 조인

  • 최대 매출액 구하려면 MAX 함수 쓰고, 연도별로 GROUP BY

1
2
3
4
5
6
7
8
9
10
11
12
13
14
%%sql

SELECT
SUBSTR(a.sales_month, 1, 4) as years
, a.employee_id
, SUM(a.amount_sold) AS amount_sold
FROM
sales a
, customers b
, countries c
WHERE a.cust_id = b.cust_id
AND b.country_id = c.country_id
AND c.country_name = 'Italy'
GROUP BY SUBSTR(a.sales_month, 1, 4), a.employee_id
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
years employee_id amount_sold
1998 1 5404.82
2001 170 10822.62
1999 150 132543.37
1999 175 126982.7
1999 160 72663.95
2000 171 62765.84
2000 176 69330.91
2000 153 142987.82
2001 167 171591.21
2001 153 2443.72
1998 156 121910.05
1999 168 100289.54
2000 172 96872.2
2000 169 102573.99
1999 145 4646.74
2000 163 92604.53
2001 179 123200.62
2001 149 138663.65
2001 154 83216.54
2001 176 9718.24
1998 157 203236.79
1999 162 94310.98
2000 175 24371.95
2000 177 90685.56
2001 173 426018.7
1998 174 258841.2
1998 158 224240.07
1999 159 163403.76
2000 170 79950.04
2000 150 76638.75
2000 148 64039.34
2000 155 32005
2000 161 53927.44
2001 166 141683.55
1998 145 311761.02
1999 147 193319.44
1999 146 89197.23
1999 151 39957.53
2000 162 16259.5
2000 154 116769.25
2001 171 14145.59
2001 148 1557.54
1999 152 97859.24
2000 160 77893.94
2001 165 145408.5
2001 164 145790.31
  • (2) (1) 결과에서 연도별 최대, 최소 매출액 구하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
%%sql

SELECT
years
, MAX(amount_sold) AS max_sold
, MIN(amount_sold) AS min_sold
FROM (SELECT
SUBSTR(a.sales_month, 1, 4) as years
, a.employee_id
, SUM(a.amount_sold) AS amount_sold
FROM
sales a
, customers b
, countries c
WHERE a.cust_id = b.cust_id
AND b.country_id = c.country_id
AND c.country_name = 'Italy'
GROUP BY SUBSTR(a.sales_month, 1, 4), a.employee_id) K
GROUP BY years
ORDER BY years
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
years max_sold min_sold
1998 311761.02 5404.82
1999 193319.44 4646.74
2000 142987.82 16259.5
2001 426018.7 1557.54
  • (3) (1) 결과와 (2) 결과를 조인해서
  • 최대매출, 최소매출액을 일으킨 사원을 찾는다.SELECT
    emp.years
    , emp.employee_id
    , emp.amount_sold
    FROM
    () emp – (1) 결과를 대입
    , () sale – (2) 결과를 대입
    WHERE emp.years = sales.years
    AND emp.amount_sold = sale.max_sold
    ORDER BY years;
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
32
33
34
35
36
37
38
39
40
41
42
43
%%sql


SELECT
emp.years
, emp.employee_id
, emp2.emp_name
, emp.amount_sold
FROM
(SELECT
SUBSTR(a.sales_month, 1, 4) as years
, a.employee_id
, SUM(a.amount_sold) AS amount_sold
FROM
sales a
, customers b
, countries c
WHERE a.cust_id = b.cust_id
AND b.country_id = c.country_id
AND c.country_name = 'Italy'
GROUP BY SUBSTR(a.sales_month, 1, 4), a.employee_id) emp
, (SELECT
years
, MAX(amount_sold) AS max_sold
, MIN(amount_sold) AS min_sold
FROM (SELECT
SUBSTR(a.sales_month, 1, 4) as years
, a.employee_id
, SUM(a.amount_sold) AS amount_sold
FROM
sales a
, customers b
, countries c
WHERE a.cust_id = b.cust_id
AND b.country_id = c.country_id
AND c.country_name = 'Italy'
GROUP BY SUBSTR(a.sales_month, 1, 4), a.employee_id) K
GROUP BY years) sale
, employees emp2
WHERE emp.years = sale.years
AND emp.amount_sold = sale.max_sold
AND emp.employee_id = emp2.employee_id
ORDER BY years
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
years employee_id emp_name amount_sold
1998 145 John Russell 311761.02
1999 147 Alberto Errazuriz 193319.44
2000 153 Christopher Olsen 142987.82
2001 173 Sundita Kumar 426018.7
  • Reference : 오라클 SQL과 PL/SQL을 다루는 기술

Oracle_practice6_2

  • 2장 CREATE, ALTER, DROP

  • 3장 SELECT, UPDATE, DELETE, INSERT

  • 4장 다양한 함수, 연산자

  • 5장 그룹 쿼리 (Groupby)

  • 6장 조인과 서브쿼리 <<

1
%load_ext sql
1
%sql oracle://ora_user:evan@127.0.0.1:1521/myoracle
1
2
3
4
5
6
7
8
9
10
11
%%sql 

SELECT
period
, region
, SUM(loan_jan_amt) totl_tan
FROM kor_loan_status
WHERE period = '201311'
GROUP BY period, region
HAVING SUM(loan_jan_amt) > 100000
ORDER BY region
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
period region totl_tan
201311 경기 282816.4
201311 서울 334062.7
  • 테이블 p.176
  • 동등 조인
1
2
3
4
5
6
7
8
9
10
11
%%sql 

SELECT
a.employee_id
, a.emp_name
, a.department_id
, b.department_name
FROM
employees a
, departments b
WHERE a.department_id = b.department_id
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name department_id department_name
200 Jennifer Whalen 10 총무기획부
201 Michael Hartstein 20 마케팅
202 Pat Fay 20 마케팅
114 Den Raphaely 30 구매/생산부
119 Karen Colmenares 30 구매/생산부
115 Alexander Khoo 30 구매/생산부
116 Shelli Baida 30 구매/생산부
117 Sigal Tobias 30 구매/생산부
118 Guy Himuro 30 구매/생산부
203 Susan Mavris 40 인사부
198 Donald OConnell 50 배송부
199 Douglas Grant 50 배송부
120 Matthew Weiss 50 배송부
121 Adam Fripp 50 배송부
122 Payam Kaufling 50 배송부
123 Shanta Vollman 50 배송부
124 Kevin Mourgos 50 배송부
125 Julia Nayer 50 배송부
126 Irene Mikkilineni 50 배송부
127 James Landry 50 배송부
128 Steven Markle 50 배송부
129 Laura Bissot 50 배송부
130 Mozhe Atkinson 50 배송부
131 James Marlow 50 배송부
132 TJ Olson 50 배송부
133 Jason Mallin 50 배송부
134 Michael Rogers 50 배송부
135 Ki Gee 50 배송부
136 Hazel Philtanker 50 배송부
137 Renske Ladwig 50 배송부
138 Stephen Stiles 50 배송부
139 John Seo 50 배송부
140 Joshua Patel 50 배송부
141 Trenna Rajs 50 배송부
142 Curtis Davies 50 배송부
143 Randall Matos 50 배송부
144 Peter Vargas 50 배송부
180 Winston Taylor 50 배송부
181 Jean Fleaur 50 배송부
182 Martha Sullivan 50 배송부
183 Girard Geoni 50 배송부
184 Nandita Sarchand 50 배송부
185 Alexis Bull 50 배송부
186 Julia Dellinger 50 배송부
187 Anthony Cabrio 50 배송부
188 Kelly Chung 50 배송부
189 Jennifer Dilly 50 배송부
190 Timothy Gates 50 배송부
191 Randall Perkins 50 배송부
192 Sarah Bell 50 배송부
193 Britney Everett 50 배송부
194 Samuel McCain 50 배송부
195 Vance Jones 50 배송부
196 Alana Walsh 50 배송부
197 Kevin Feeney 50 배송부
104 Bruce Ernst 60 IT
103 Alexander Hunold 60 IT
107 Diana Lorentz 60 IT
106 Valli Pataballa 60 IT
105 David Austin 60 IT
204 Hermann Baer 70 홍보부
176 Jonathon Taylor 80 영업부
177 Jack Livingston 80 영업부
179 Charles Johnson 80 영업부
175 Alyssa Hutton 80 영업부
174 Ellen Abel 80 영업부
173 Sundita Kumar 80 영업부
172 Elizabeth Bates 80 영업부
171 William Smith 80 영업부
170 Tayler Fox 80 영업부
169 Harrison Bloom 80 영업부
168 Lisa Ozer 80 영업부
145 John Russell 80 영업부
146 Karen Partners 80 영업부
147 Alberto Errazuriz 80 영업부
148 Gerald Cambrault 80 영업부
149 Eleni Zlotkey 80 영업부
150 Peter Tucker 80 영업부
151 David Bernstein 80 영업부
152 Peter Hall 80 영업부
153 Christopher Olsen 80 영업부
154 Nanette Cambrault 80 영업부
155 Oliver Tuvault 80 영업부
156 Janette King 80 영업부
157 Patrick Sully 80 영업부
158 Allan McEwen 80 영업부
159 Lindsey Smith 80 영업부
160 Louise Doran 80 영업부
161 Sarath Sewall 80 영업부
162 Clara Vishney 80 영업부
163 Danielle Greene 80 영업부
164 Mattea Marvins 80 영업부
165 David Lee 80 영업부
166 Sundar Ande 80 영업부
167 Amit Banda 80 영업부
101 Neena Kochhar 90 기획부
100 Steven King 90 기획부
102 Lex De Haan 90 기획부
110 John Chen 100 자금부
108 Nancy Greenberg 100 자금부
111 Ismael Sciarra 100 자금부
112 Jose Manuel Urman 100 자금부
113 Luis Popp 100 자금부
109 Daniel Faviet 100 자금부
206 William Gietz 110 경리부
205 Shelley Higgins 110 경리부
  • 세미조인

  • 서브쿼리를 사용함

  • 서브 쿼리에 존재하는 데이터만 메인쿼리에서 추출

  • IN & EXISTS

  • EXISTS 사용

1
2
3
4
5
6
7
8
9
10
11
12
%%sql 

SELECT
department_id
, department_name
FROM departments a
WHERE EXISTS (SELECT *
FROM employees b
WHERE a.department_id = b.department_id
AND b.salary > 3000
) -- EXISTS
ORDER BY a.department_name
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id department_name
60 IT
110 경리부
30 구매/생산부
90 기획부
20 마케팅
50 배송부
80 영업부
40 인사부
100 자금부
10 총무기획부
70 홍보부
  • IN 사용
1
2
3
4
5
6
7
8
9
10
11
12
%%sql 

SELECT
department_id
, department_name
FROM departments a
WHERE a.department_id IN (SELECT
b.department_id
FROM employees b
WHERE b.salary > 3000
) -- IN
ORDER BY a.department_name
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id department_name
60 IT
110 경리부
30 구매/생산부
90 기획부
20 마케팅
50 배송부
80 영업부
40 인사부
100 자금부
10 총무기획부
70 홍보부
  • 안티 조인
  • 세미 조인 개념의 반대
  • 서브 쿼리의 B 테이블에는 없는 메인 쿼리의 A 테이블의 데이터만 추출하는 조인 방법이다.
  • NOT IN이나 NOT EXISTS 연산자를 사용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
%%sql 

SELECT
a.employee_id
, a.emp_name
, a.department_id
, b.department_name
FROM
employees a
, departments b
WHERE a.department_id = b.department_id
AND a.department_id NOT IN (SELECT department_id
FROM departments
WHERE manager_id IS NULL)
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name department_id department_name
198 Donald OConnell 50 배송부
199 Douglas Grant 50 배송부
120 Matthew Weiss 50 배송부
121 Adam Fripp 50 배송부
122 Payam Kaufling 50 배송부
123 Shanta Vollman 50 배송부
124 Kevin Mourgos 50 배송부
125 Julia Nayer 50 배송부
126 Irene Mikkilineni 50 배송부
127 James Landry 50 배송부
128 Steven Markle 50 배송부
129 Laura Bissot 50 배송부
130 Mozhe Atkinson 50 배송부
131 James Marlow 50 배송부
132 TJ Olson 50 배송부
133 Jason Mallin 50 배송부
134 Michael Rogers 50 배송부
135 Ki Gee 50 배송부
136 Hazel Philtanker 50 배송부
137 Renske Ladwig 50 배송부
138 Stephen Stiles 50 배송부
139 John Seo 50 배송부
140 Joshua Patel 50 배송부
141 Trenna Rajs 50 배송부
142 Curtis Davies 50 배송부
143 Randall Matos 50 배송부
144 Peter Vargas 50 배송부
180 Winston Taylor 50 배송부
181 Jean Fleaur 50 배송부
182 Martha Sullivan 50 배송부
183 Girard Geoni 50 배송부
184 Nandita Sarchand 50 배송부
185 Alexis Bull 50 배송부
186 Julia Dellinger 50 배송부
187 Anthony Cabrio 50 배송부
188 Kelly Chung 50 배송부
189 Jennifer Dilly 50 배송부
190 Timothy Gates 50 배송부
191 Randall Perkins 50 배송부
192 Sarah Bell 50 배송부
193 Britney Everett 50 배송부
194 Samuel McCain 50 배송부
195 Vance Jones 50 배송부
196 Alana Walsh 50 배송부
197 Kevin Feeney 50 배송부
203 Susan Mavris 40 인사부
206 William Gietz 110 경리부
205 Shelley Higgins 110 경리부
114 Den Raphaely 30 구매/생산부
119 Karen Colmenares 30 구매/생산부
115 Alexander Khoo 30 구매/생산부
116 Shelli Baida 30 구매/생산부
117 Sigal Tobias 30 구매/생산부
118 Guy Himuro 30 구매/생산부
101 Neena Kochhar 90 기획부
100 Steven King 90 기획부
102 Lex De Haan 90 기획부
204 Hermann Baer 70 홍보부
200 Jennifer Whalen 10 총무기획부
201 Michael Hartstein 20 마케팅
202 Pat Fay 20 마케팅
104 Bruce Ernst 60 IT
103 Alexander Hunold 60 IT
107 Diana Lorentz 60 IT
106 Valli Pataballa 60 IT
105 David Austin 60 IT
176 Jonathon Taylor 80 영업부
177 Jack Livingston 80 영업부
179 Charles Johnson 80 영업부
175 Alyssa Hutton 80 영업부
174 Ellen Abel 80 영업부
173 Sundita Kumar 80 영업부
172 Elizabeth Bates 80 영업부
171 William Smith 80 영업부
170 Tayler Fox 80 영업부
169 Harrison Bloom 80 영업부
168 Lisa Ozer 80 영업부
145 John Russell 80 영업부
146 Karen Partners 80 영업부
147 Alberto Errazuriz 80 영업부
148 Gerald Cambrault 80 영업부
149 Eleni Zlotkey 80 영업부
150 Peter Tucker 80 영업부
151 David Bernstein 80 영업부
152 Peter Hall 80 영업부
153 Christopher Olsen 80 영업부
154 Nanette Cambrault 80 영업부
155 Oliver Tuvault 80 영업부
156 Janette King 80 영업부
157 Patrick Sully 80 영업부
158 Allan McEwen 80 영업부
159 Lindsey Smith 80 영업부
160 Louise Doran 80 영업부
161 Sarath Sewall 80 영업부
162 Clara Vishney 80 영업부
163 Danielle Greene 80 영업부
164 Mattea Marvins 80 영업부
165 David Lee 80 영업부
166 Sundar Ande 80 영업부
167 Amit Banda 80 영업부
110 John Chen 100 자금부
108 Nancy Greenberg 100 자금부
111 Ismael Sciarra 100 자금부
112 Jose Manuel Urman 100 자금부
113 Luis Popp 100 자금부
109 Daniel Faviet 100 자금부
  • 셀프 조인
  • 동일한 한 테이블에서 조인하는 방법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

%%sql

SELECT
a.employee_id
, a.emp_name
, b.employee_id
, b.emp_name
, a.department_id
FROM
employees a
, employees b
WHERE a.employee_id < b.employee_id
AND a.department_id = b.department_id
AND a.department_id = 20
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name employee_id_1 emp_name_1 department_id
201 Michael Hartstein 202 Pat Fay 20
  • OUTER JOIN
  • 조인 조건에 만족하지 않더라도 데이터를 모두 추출함
  • 무조건 ID가 매칭이 된 것만 조회
1
2
3
4
5
6
7
8
9
10
11
%%sql

SELECT
a.department_id
, a.department_name
, b.job_id
, b.department_id
FROM
departments a
, job_history b
WHERE a.department_id = b.department_id
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id department_name job_id department_id_1
20 마케팅 MK_REP 20
50 배송부 ST_CLERK 50
50 배송부 ST_CLERK 50
60 IT IT_PROG 60
80 영업부 SA_MAN 80
80 영업부 SA_REP 80
90 기획부 AC_ACCOUNT 90
90 기획부 AD_ASST 90
110 경리부 AC_MGR 110
110 경리부 AC_ACCOUNT 110
1
2
3
4
5
6
7
8
9
10
11
12
%%sql

SELECT
a.employee_id
, a.emp_name
, b.job_id
, b.department_id
FROM
employees a
, job_history b
WHERE a.employee_id = b.employee_id(+)
AND a.department_id = b.department_id(+)
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name job_id department_id
201 Michael Hartstein MK_REP 20
122 Payam Kaufling ST_CLERK 50
176 Jonathon Taylor SA_REP 80
176 Jonathon Taylor SA_MAN 80
101 Neena Kochhar None None
105 David Austin None None
128 Steven Markle None None
139 John Seo None None
166 Sundar Ande None None
186 Julia Dellinger None None
197 Kevin Feeney None None
106 Valli Pataballa None None
108 Nancy Greenberg None None
126 Irene Mikkilineni None None
172 Elizabeth Bates None None
120 Matthew Weiss None None
124 Kevin Mourgos None None
154 Nanette Cambrault None None
155 Oliver Tuvault None None
181 Jean Fleaur None None
199 Douglas Grant None None
204 Hermann Baer None None
134 Michael Rogers None None
167 Amit Banda None None
206 William Gietz None None
125 Julia Nayer None None
161 Sarath Sewall None None
182 Martha Sullivan None None
146 Karen Partners None None
152 Peter Hall None None
177 Jack Livingston None None
190 Timothy Gates None None
193 Britney Everett None None
203 Susan Mavris None None
133 Jason Mallin None None
158 Allan McEwen None None
159 Lindsey Smith None None
119 Karen Colmenares None None
153 Christopher Olsen None None
173 Sundita Kumar None None
137 Renske Ladwig None None
143 Randall Matos None None
151 David Bernstein None None
184 Nandita Sarchand None None
102 Lex De Haan None None
149 Eleni Zlotkey None None
191 Randall Perkins None None
100 Steven King None None
145 John Russell None None
168 Lisa Ozer None None
170 Tayler Fox None None
202 Pat Fay None None
112 Jose Manuel Urman None None
171 William Smith None None
185 Alexis Bull None None
110 John Chen None None
115 Alexander Khoo None None
131 James Marlow None None
103 Alexander Hunold None None
116 Shelli Baida None None
138 Stephen Stiles None None
147 Alberto Errazuriz None None
157 Patrick Sully None None
183 Girard Geoni None None
111 Ismael Sciarra None None
150 Peter Tucker None None
163 Danielle Greene None None
107 Diana Lorentz None None
109 Daniel Faviet None None
121 Adam Fripp None None
123 Shanta Vollman None None
144 Peter Vargas None None
156 Janette King None None
113 Luis Popp None None
130 Mozhe Atkinson None None
148 Gerald Cambrault None None
160 Louise Doran None None
200 Jennifer Whalen None None
165 David Lee None None
178 Kimberely Grant None None
194 Samuel McCain None None
104 Bruce Ernst None None
132 TJ Olson None None
136 Hazel Philtanker None None
141 Trenna Rajs None None
162 Clara Vishney None None
196 Alana Walsh None None
117 Sigal Tobias None None
175 Alyssa Hutton None None
135 Ki Gee None None
164 Mattea Marvins None None
188 Kelly Chung None None
198 Donald OConnell None None
118 Guy Himuro None None
129 Laura Bissot None None
169 Harrison Bloom None None
189 Jennifer Dilly None None
192 Sarah Bell None None
205 Shelley Higgins None None
114 Den Raphaely None None
127 James Landry None None
174 Ellen Abel None None
179 Charles Johnson None None
187 Anthony Cabrio None None
142 Curtis Davies None None
180 Winston Taylor None None
195 Vance Jones None None
140 Joshua Patel None None
  • 카타시안 조인
  • 사원 테이블의 총 건수는 107건
  • 부서 테이블의 총 건수는 27건
  • 107 x 27 = 2,889건
  • ANSI 조인
  • ANSI SQL 문법 (JOIN 명 들어감)
  • 조인 조건이 WHERE절이 아닌 FROM 절에 들어 간다.
    • 쿼리 비교 : 2013년 1월 1일 이후에 입사한 사원번호, 사원명 부서번호, 부서명을 조회
  • 기존 쿼리
1
2
3
4
5
6
7
8
9
10
11
12
13
%%sql

SELECT
a.employee_id
, a.emp_name
, a.hire_date
, b.department_id
, b.department_name
FROM
employees a
, departments b
WHERE a.department_id = b.department_id
AND a.hire_date >= TO_DATE('2003-01-01', 'YYYY-MM-DD')
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name hire_date department_id department_name
200 Jennifer Whalen 2003-09-17 00:00:00 10 총무기획부
202 Pat Fay 2005-08-17 00:00:00 20 마케팅
201 Michael Hartstein 2004-02-17 00:00:00 20 마케팅
118 Guy Himuro 2006-11-15 00:00:00 30 구매/생산부
117 Sigal Tobias 2005-07-24 00:00:00 30 구매/생산부
116 Shelli Baida 2005-12-24 00:00:00 30 구매/생산부
119 Karen Colmenares 2007-08-10 00:00:00 30 구매/생산부
115 Alexander Khoo 2003-05-18 00:00:00 30 구매/생산부
198 Donald OConnell 2007-06-21 00:00:00 50 배송부
199 Douglas Grant 2008-01-13 00:00:00 50 배송부
120 Matthew Weiss 2004-07-18 00:00:00 50 배송부
121 Adam Fripp 2005-04-10 00:00:00 50 배송부
122 Payam Kaufling 2003-05-01 00:00:00 50 배송부
123 Shanta Vollman 2005-10-10 00:00:00 50 배송부
124 Kevin Mourgos 2007-11-16 00:00:00 50 배송부
125 Julia Nayer 2005-07-16 00:00:00 50 배송부
126 Irene Mikkilineni 2006-09-28 00:00:00 50 배송부
127 James Landry 2007-01-14 00:00:00 50 배송부
128 Steven Markle 2008-03-08 00:00:00 50 배송부
129 Laura Bissot 2005-08-20 00:00:00 50 배송부
130 Mozhe Atkinson 2005-10-30 00:00:00 50 배송부
131 James Marlow 2005-02-16 00:00:00 50 배송부
132 TJ Olson 2007-04-10 00:00:00 50 배송부
133 Jason Mallin 2004-06-14 00:00:00 50 배송부
134 Michael Rogers 2006-08-26 00:00:00 50 배송부
135 Ki Gee 2007-12-12 00:00:00 50 배송부
136 Hazel Philtanker 2008-02-06 00:00:00 50 배송부
137 Renske Ladwig 2003-07-14 00:00:00 50 배송부
138 Stephen Stiles 2005-10-26 00:00:00 50 배송부
139 John Seo 2006-02-12 00:00:00 50 배송부
140 Joshua Patel 2006-04-06 00:00:00 50 배송부
141 Trenna Rajs 2003-10-17 00:00:00 50 배송부
142 Curtis Davies 2005-01-29 00:00:00 50 배송부
143 Randall Matos 2006-03-15 00:00:00 50 배송부
144 Peter Vargas 2006-07-09 00:00:00 50 배송부
180 Winston Taylor 2006-01-24 00:00:00 50 배송부
181 Jean Fleaur 2006-02-23 00:00:00 50 배송부
182 Martha Sullivan 2007-06-21 00:00:00 50 배송부
183 Girard Geoni 2008-02-03 00:00:00 50 배송부
184 Nandita Sarchand 2004-01-27 00:00:00 50 배송부
185 Alexis Bull 2005-02-20 00:00:00 50 배송부
186 Julia Dellinger 2006-06-24 00:00:00 50 배송부
187 Anthony Cabrio 2007-02-07 00:00:00 50 배송부
188 Kelly Chung 2005-06-14 00:00:00 50 배송부
189 Jennifer Dilly 2005-08-13 00:00:00 50 배송부
190 Timothy Gates 2006-07-11 00:00:00 50 배송부
191 Randall Perkins 2007-12-19 00:00:00 50 배송부
192 Sarah Bell 2004-02-04 00:00:00 50 배송부
193 Britney Everett 2005-03-03 00:00:00 50 배송부
194 Samuel McCain 2006-07-01 00:00:00 50 배송부
195 Vance Jones 2007-03-17 00:00:00 50 배송부
196 Alana Walsh 2006-04-24 00:00:00 50 배송부
197 Kevin Feeney 2006-05-23 00:00:00 50 배송부
106 Valli Pataballa 2006-02-05 00:00:00 60 IT
107 Diana Lorentz 2007-02-07 00:00:00 60 IT
105 David Austin 2005-06-25 00:00:00 60 IT
104 Bruce Ernst 2007-05-21 00:00:00 60 IT
103 Alexander Hunold 2006-01-03 00:00:00 60 IT
101 Neena Kochhar 2005-09-21 00:00:00 90 기획부
100 Steven King 2003-06-17 00:00:00 90 기획부
113 Luis Popp 2007-12-07 00:00:00 100 자금부
112 Jose Manuel Urman 2006-03-07 00:00:00 100 자금부
111 Ismael Sciarra 2005-09-30 00:00:00 100 자금부
110 John Chen 2005-09-28 00:00:00 100 자금부
  • 쿼리 비교 : 2013년 1월 1일 이후에 입사한 사원번호, 사원명 부서번호, 부서명을 조회
  • ANSI 쿼리
1
2
3
4
5
6
7
8
9
10
11
12
13
%%sql

SELECT
a.employee_id
, a.emp_name
, a.hire_date
, b.department_id
, b.department_name
FROM
employees a
INNER JOIN departments b
ON (a.department_id = b.department_id)
WHERE a.hire_date >= TO_DATE('2003-01-01', 'YYYY-MM-DD')
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name hire_date department_id department_name
200 Jennifer Whalen 2003-09-17 00:00:00 10 총무기획부
202 Pat Fay 2005-08-17 00:00:00 20 마케팅
201 Michael Hartstein 2004-02-17 00:00:00 20 마케팅
118 Guy Himuro 2006-11-15 00:00:00 30 구매/생산부
117 Sigal Tobias 2005-07-24 00:00:00 30 구매/생산부
116 Shelli Baida 2005-12-24 00:00:00 30 구매/생산부
119 Karen Colmenares 2007-08-10 00:00:00 30 구매/생산부
115 Alexander Khoo 2003-05-18 00:00:00 30 구매/생산부
198 Donald OConnell 2007-06-21 00:00:00 50 배송부
199 Douglas Grant 2008-01-13 00:00:00 50 배송부
120 Matthew Weiss 2004-07-18 00:00:00 50 배송부
121 Adam Fripp 2005-04-10 00:00:00 50 배송부
122 Payam Kaufling 2003-05-01 00:00:00 50 배송부
123 Shanta Vollman 2005-10-10 00:00:00 50 배송부
124 Kevin Mourgos 2007-11-16 00:00:00 50 배송부
125 Julia Nayer 2005-07-16 00:00:00 50 배송부
126 Irene Mikkilineni 2006-09-28 00:00:00 50 배송부
127 James Landry 2007-01-14 00:00:00 50 배송부
128 Steven Markle 2008-03-08 00:00:00 50 배송부
129 Laura Bissot 2005-08-20 00:00:00 50 배송부
130 Mozhe Atkinson 2005-10-30 00:00:00 50 배송부
131 James Marlow 2005-02-16 00:00:00 50 배송부
132 TJ Olson 2007-04-10 00:00:00 50 배송부
133 Jason Mallin 2004-06-14 00:00:00 50 배송부
134 Michael Rogers 2006-08-26 00:00:00 50 배송부
135 Ki Gee 2007-12-12 00:00:00 50 배송부
136 Hazel Philtanker 2008-02-06 00:00:00 50 배송부
137 Renske Ladwig 2003-07-14 00:00:00 50 배송부
138 Stephen Stiles 2005-10-26 00:00:00 50 배송부
139 John Seo 2006-02-12 00:00:00 50 배송부
140 Joshua Patel 2006-04-06 00:00:00 50 배송부
141 Trenna Rajs 2003-10-17 00:00:00 50 배송부
142 Curtis Davies 2005-01-29 00:00:00 50 배송부
143 Randall Matos 2006-03-15 00:00:00 50 배송부
144 Peter Vargas 2006-07-09 00:00:00 50 배송부
180 Winston Taylor 2006-01-24 00:00:00 50 배송부
181 Jean Fleaur 2006-02-23 00:00:00 50 배송부
182 Martha Sullivan 2007-06-21 00:00:00 50 배송부
183 Girard Geoni 2008-02-03 00:00:00 50 배송부
184 Nandita Sarchand 2004-01-27 00:00:00 50 배송부
185 Alexis Bull 2005-02-20 00:00:00 50 배송부
186 Julia Dellinger 2006-06-24 00:00:00 50 배송부
187 Anthony Cabrio 2007-02-07 00:00:00 50 배송부
188 Kelly Chung 2005-06-14 00:00:00 50 배송부
189 Jennifer Dilly 2005-08-13 00:00:00 50 배송부
190 Timothy Gates 2006-07-11 00:00:00 50 배송부
191 Randall Perkins 2007-12-19 00:00:00 50 배송부
192 Sarah Bell 2004-02-04 00:00:00 50 배송부
193 Britney Everett 2005-03-03 00:00:00 50 배송부
194 Samuel McCain 2006-07-01 00:00:00 50 배송부
195 Vance Jones 2007-03-17 00:00:00 50 배송부
196 Alana Walsh 2006-04-24 00:00:00 50 배송부
197 Kevin Feeney 2006-05-23 00:00:00 50 배송부
106 Valli Pataballa 2006-02-05 00:00:00 60 IT
107 Diana Lorentz 2007-02-07 00:00:00 60 IT
105 David Austin 2005-06-25 00:00:00 60 IT
104 Bruce Ernst 2007-05-21 00:00:00 60 IT
103 Alexander Hunold 2006-01-03 00:00:00 60 IT
101 Neena Kochhar 2005-09-21 00:00:00 90 기획부
100 Steven King 2003-06-17 00:00:00 90 기획부
113 Luis Popp 2007-12-07 00:00:00 100 자금부
112 Jose Manuel Urman 2006-03-07 00:00:00 100 자금부
111 Ismael Sciarra 2005-09-30 00:00:00 100 자금부
110 John Chen 2005-09-28 00:00:00 100 자금부
  • ANSI 외부 조인
  • ANSI 외부 조인도 그 형식은 내부 조인과 비슷하다.
  • 기존 문법에서는 기준 테이블과 대상 테이블(데이터가 없는 테이블)에서 대상 테이블쪽 조인 조건에 (+)를 붙였지만, ANSI 외부 조인은 FROM 절에 명시된 테이블 순서에 입각해 먼저 명시된 테이블 기준으로 LEFT 혹은 RIGHT를 붙이는 점이 다르다.- 쿼리 비교 : ANSI 외부 조인
  • 기본 쿼리
1
2
3
4
5
6
7
8
9
10
11
%%sql

SELECT
a.employee_id
, a.emp_name
, b.job_id
, b.department_id
FROM employees a
, job_history b
WHERE a.employee_id = b.employee_id(+)
AND a.department_id = b.department_id(+)
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name job_id department_id
201 Michael Hartstein MK_REP 20
122 Payam Kaufling ST_CLERK 50
176 Jonathon Taylor SA_REP 80
176 Jonathon Taylor SA_MAN 80
101 Neena Kochhar None None
105 David Austin None None
128 Steven Markle None None
139 John Seo None None
166 Sundar Ande None None
186 Julia Dellinger None None
197 Kevin Feeney None None
106 Valli Pataballa None None
108 Nancy Greenberg None None
126 Irene Mikkilineni None None
172 Elizabeth Bates None None
120 Matthew Weiss None None
124 Kevin Mourgos None None
154 Nanette Cambrault None None
155 Oliver Tuvault None None
181 Jean Fleaur None None
199 Douglas Grant None None
204 Hermann Baer None None
134 Michael Rogers None None
167 Amit Banda None None
206 William Gietz None None
125 Julia Nayer None None
161 Sarath Sewall None None
182 Martha Sullivan None None
146 Karen Partners None None
152 Peter Hall None None
177 Jack Livingston None None
190 Timothy Gates None None
193 Britney Everett None None
203 Susan Mavris None None
133 Jason Mallin None None
158 Allan McEwen None None
159 Lindsey Smith None None
119 Karen Colmenares None None
153 Christopher Olsen None None
173 Sundita Kumar None None
137 Renske Ladwig None None
143 Randall Matos None None
151 David Bernstein None None
184 Nandita Sarchand None None
102 Lex De Haan None None
149 Eleni Zlotkey None None
191 Randall Perkins None None
100 Steven King None None
145 John Russell None None
168 Lisa Ozer None None
170 Tayler Fox None None
202 Pat Fay None None
112 Jose Manuel Urman None None
171 William Smith None None
185 Alexis Bull None None
110 John Chen None None
115 Alexander Khoo None None
131 James Marlow None None
103 Alexander Hunold None None
116 Shelli Baida None None
138 Stephen Stiles None None
147 Alberto Errazuriz None None
157 Patrick Sully None None
183 Girard Geoni None None
111 Ismael Sciarra None None
150 Peter Tucker None None
163 Danielle Greene None None
107 Diana Lorentz None None
109 Daniel Faviet None None
121 Adam Fripp None None
123 Shanta Vollman None None
144 Peter Vargas None None
156 Janette King None None
113 Luis Popp None None
130 Mozhe Atkinson None None
148 Gerald Cambrault None None
160 Louise Doran None None
200 Jennifer Whalen None None
165 David Lee None None
178 Kimberely Grant None None
194 Samuel McCain None None
104 Bruce Ernst None None
132 TJ Olson None None
136 Hazel Philtanker None None
141 Trenna Rajs None None
162 Clara Vishney None None
196 Alana Walsh None None
117 Sigal Tobias None None
175 Alyssa Hutton None None
135 Ki Gee None None
164 Mattea Marvins None None
188 Kelly Chung None None
198 Donald OConnell None None
118 Guy Himuro None None
129 Laura Bissot None None
169 Harrison Bloom None None
189 Jennifer Dilly None None
192 Sarah Bell None None
205 Shelley Higgins None None
114 Den Raphaely None None
127 James Landry None None
174 Ellen Abel None None
179 Charles Johnson None None
187 Anthony Cabrio None None
142 Curtis Davies None None
180 Winston Taylor None None
195 Vance Jones None None
140 Joshua Patel None None
  • 쿼리 비교 : ANSI 외부 조인
  • ANSI 쿼리
1
2
3
4
5
6
7
8
9
10
11
%%sql

SELECT
a.employee_id
, a.emp_name
, b.job_id
, b.department_id
FROM employees a
LEFT OUTER JOIN job_history b
ON (a.employee_id = b.employee_id
and a.department_id = b.department_id)
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name job_id department_id
201 Michael Hartstein MK_REP 20
122 Payam Kaufling ST_CLERK 50
176 Jonathon Taylor SA_REP 80
176 Jonathon Taylor SA_MAN 80
101 Neena Kochhar None None
105 David Austin None None
128 Steven Markle None None
139 John Seo None None
166 Sundar Ande None None
186 Julia Dellinger None None
197 Kevin Feeney None None
106 Valli Pataballa None None
108 Nancy Greenberg None None
126 Irene Mikkilineni None None
172 Elizabeth Bates None None
120 Matthew Weiss None None
124 Kevin Mourgos None None
154 Nanette Cambrault None None
155 Oliver Tuvault None None
181 Jean Fleaur None None
199 Douglas Grant None None
204 Hermann Baer None None
134 Michael Rogers None None
167 Amit Banda None None
206 William Gietz None None
125 Julia Nayer None None
161 Sarath Sewall None None
182 Martha Sullivan None None
146 Karen Partners None None
152 Peter Hall None None
177 Jack Livingston None None
190 Timothy Gates None None
193 Britney Everett None None
203 Susan Mavris None None
133 Jason Mallin None None
158 Allan McEwen None None
159 Lindsey Smith None None
119 Karen Colmenares None None
153 Christopher Olsen None None
173 Sundita Kumar None None
137 Renske Ladwig None None
143 Randall Matos None None
151 David Bernstein None None
184 Nandita Sarchand None None
102 Lex De Haan None None
149 Eleni Zlotkey None None
191 Randall Perkins None None
100 Steven King None None
145 John Russell None None
168 Lisa Ozer None None
170 Tayler Fox None None
202 Pat Fay None None
112 Jose Manuel Urman None None
171 William Smith None None
185 Alexis Bull None None
110 John Chen None None
115 Alexander Khoo None None
131 James Marlow None None
103 Alexander Hunold None None
116 Shelli Baida None None
138 Stephen Stiles None None
147 Alberto Errazuriz None None
157 Patrick Sully None None
183 Girard Geoni None None
111 Ismael Sciarra None None
150 Peter Tucker None None
163 Danielle Greene None None
107 Diana Lorentz None None
109 Daniel Faviet None None
121 Adam Fripp None None
123 Shanta Vollman None None
144 Peter Vargas None None
156 Janette King None None
113 Luis Popp None None
130 Mozhe Atkinson None None
148 Gerald Cambrault None None
160 Louise Doran None None
200 Jennifer Whalen None None
165 David Lee None None
178 Kimberely Grant None None
194 Samuel McCain None None
104 Bruce Ernst None None
132 TJ Olson None None
136 Hazel Philtanker None None
141 Trenna Rajs None None
162 Clara Vishney None None
196 Alana Walsh None None
117 Sigal Tobias None None
175 Alyssa Hutton None None
135 Ki Gee None None
164 Mattea Marvins None None
188 Kelly Chung None None
198 Donald OConnell None None
118 Guy Himuro None None
129 Laura Bissot None None
169 Harrison Bloom None None
189 Jennifer Dilly None None
192 Sarah Bell None None
205 Shelley Higgins None None
114 Den Raphaely None None
127 James Landry None None
174 Ellen Abel None None
179 Charles Johnson None None
187 Anthony Cabrio None None
142 Curtis Davies None None
180 Winston Taylor None None
195 Vance Jones None None
140 Joshua Patel None None
  • CROSS 조인
  • WHERE 절에 조인 조건을 명시하지 않은 ANSI 조인이다.
1
2
3
4
5
6
7
8
9
%%sql

SELECT
a.employee_id
, a.emp_name
, b.department_id
, b.department_name
FROM employees a
CROSS JOIN departments b
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name department_id department_name
198 Donald OConnell 10 총무기획부
199 Douglas Grant 10 총무기획부
200 Jennifer Whalen 10 총무기획부
201 Michael Hartstein 10 총무기획부
202 Pat Fay 10 총무기획부
203 Susan Mavris 10 총무기획부
204 Hermann Baer 10 총무기획부
205 Shelley Higgins 10 총무기획부
206 William Gietz 10 총무기획부
100 Steven King 10 총무기획부
101 Neena Kochhar 10 총무기획부
102 Lex De Haan 10 총무기획부
103 Alexander Hunold 10 총무기획부
104 Bruce Ernst 10 총무기획부
105 David Austin 10 총무기획부
106 Valli Pataballa 10 총무기획부
107 Diana Lorentz 10 총무기획부
108 Nancy Greenberg 10 총무기획부
109 Daniel Faviet 10 총무기획부
110 John Chen 10 총무기획부
111 Ismael Sciarra 10 총무기획부
112 Jose Manuel Urman 10 총무기획부
113 Luis Popp 10 총무기획부
114 Den Raphaely 10 총무기획부
115 Alexander Khoo 10 총무기획부
116 Shelli Baida 10 총무기획부
117 Sigal Tobias 10 총무기획부
118 Guy Himuro 10 총무기획부
119 Karen Colmenares 10 총무기획부
120 Matthew Weiss 10 총무기획부
121 Adam Fripp 10 총무기획부
122 Payam Kaufling 10 총무기획부
123 Shanta Vollman 10 총무기획부
124 Kevin Mourgos 10 총무기획부
125 Julia Nayer 10 총무기획부
126 Irene Mikkilineni 10 총무기획부
127 James Landry 10 총무기획부
128 Steven Markle 10 총무기획부
129 Laura Bissot 10 총무기획부
130 Mozhe Atkinson 10 총무기획부
131 James Marlow 10 총무기획부
132 TJ Olson 10 총무기획부
133 Jason Mallin 10 총무기획부
134 Michael Rogers 10 총무기획부
135 Ki Gee 10 총무기획부
136 Hazel Philtanker 10 총무기획부
137 Renske Ladwig 10 총무기획부
138 Stephen Stiles 10 총무기획부
139 John Seo 10 총무기획부
140 Joshua Patel 10 총무기획부
141 Trenna Rajs 10 총무기획부
142 Curtis Davies 10 총무기획부
143 Randall Matos 10 총무기획부
144 Peter Vargas 10 총무기획부
145 John Russell 10 총무기획부
146 Karen Partners 10 총무기획부
147 Alberto Errazuriz 10 총무기획부
148 Gerald Cambrault 10 총무기획부
149 Eleni Zlotkey 10 총무기획부
150 Peter Tucker 10 총무기획부
151 David Bernstein 10 총무기획부
152 Peter Hall 10 총무기획부
153 Christopher Olsen 10 총무기획부
154 Nanette Cambrault 10 총무기획부
155 Oliver Tuvault 10 총무기획부
156 Janette King 10 총무기획부
157 Patrick Sully 10 총무기획부
158 Allan McEwen 10 총무기획부
159 Lindsey Smith 10 총무기획부
160 Louise Doran 10 총무기획부
161 Sarath Sewall 10 총무기획부
162 Clara Vishney 10 총무기획부
163 Danielle Greene 10 총무기획부
164 Mattea Marvins 10 총무기획부
165 David Lee 10 총무기획부
166 Sundar Ande 10 총무기획부
167 Amit Banda 10 총무기획부
168 Lisa Ozer 10 총무기획부
169 Harrison Bloom 10 총무기획부
170 Tayler Fox 10 총무기획부
171 William Smith 10 총무기획부
172 Elizabeth Bates 10 총무기획부
173 Sundita Kumar 10 총무기획부
174 Ellen Abel 10 총무기획부
175 Alyssa Hutton 10 총무기획부
176 Jonathon Taylor 10 총무기획부
177 Jack Livingston 10 총무기획부
178 Kimberely Grant 10 총무기획부
179 Charles Johnson 10 총무기획부
180 Winston Taylor 10 총무기획부
181 Jean Fleaur 10 총무기획부
182 Martha Sullivan 10 총무기획부
183 Girard Geoni 10 총무기획부
184 Nandita Sarchand 10 총무기획부
185 Alexis Bull 10 총무기획부
186 Julia Dellinger 10 총무기획부
187 Anthony Cabrio 10 총무기획부
188 Kelly Chung 10 총무기획부
189 Jennifer Dilly 10 총무기획부
190 Timothy Gates 10 총무기획부
191 Randall Perkins 10 총무기획부
192 Sarah Bell 10 총무기획부
193 Britney Everett 10 총무기획부
194 Samuel McCain 10 총무기획부
195 Vance Jones 10 총무기획부
196 Alana Walsh 10 총무기획부
197 Kevin Feeney 10 총무기획부
198 Donald OConnell 20 마케팅
199 Douglas Grant 20 마케팅
200 Jennifer Whalen 20 마케팅
201 Michael Hartstein 20 마케팅
202 Pat Fay 20 마케팅
203 Susan Mavris 20 마케팅
204 Hermann Baer 20 마케팅
205 Shelley Higgins 20 마케팅
206 William Gietz 20 마케팅
100 Steven King 20 마케팅
101 Neena Kochhar 20 마케팅
102 Lex De Haan 20 마케팅
103 Alexander Hunold 20 마케팅
104 Bruce Ernst 20 마케팅
105 David Austin 20 마케팅
106 Valli Pataballa 20 마케팅
107 Diana Lorentz 20 마케팅
108 Nancy Greenberg 20 마케팅
109 Daniel Faviet 20 마케팅
110 John Chen 20 마케팅
111 Ismael Sciarra 20 마케팅
112 Jose Manuel Urman 20 마케팅
113 Luis Popp 20 마케팅
114 Den Raphaely 20 마케팅
115 Alexander Khoo 20 마케팅
116 Shelli Baida 20 마케팅
117 Sigal Tobias 20 마케팅
118 Guy Himuro 20 마케팅
119 Karen Colmenares 20 마케팅
120 Matthew Weiss 20 마케팅
121 Adam Fripp 20 마케팅
122 Payam Kaufling 20 마케팅
123 Shanta Vollman 20 마케팅
124 Kevin Mourgos 20 마케팅
125 Julia Nayer 20 마케팅
126 Irene Mikkilineni 20 마케팅
127 James Landry 20 마케팅
128 Steven Markle 20 마케팅
129 Laura Bissot 20 마케팅
130 Mozhe Atkinson 20 마케팅
131 James Marlow 20 마케팅
132 TJ Olson 20 마케팅
133 Jason Mallin 20 마케팅
134 Michael Rogers 20 마케팅
135 Ki Gee 20 마케팅
136 Hazel Philtanker 20 마케팅
137 Renske Ladwig 20 마케팅
138 Stephen Stiles 20 마케팅
139 John Seo 20 마케팅
140 Joshua Patel 20 마케팅
141 Trenna Rajs 20 마케팅
142 Curtis Davies 20 마케팅
143 Randall Matos 20 마케팅
144 Peter Vargas 20 마케팅
145 John Russell 20 마케팅
146 Karen Partners 20 마케팅
147 Alberto Errazuriz 20 마케팅
148 Gerald Cambrault 20 마케팅
149 Eleni Zlotkey 20 마케팅
150 Peter Tucker 20 마케팅
151 David Bernstein 20 마케팅
152 Peter Hall 20 마케팅
153 Christopher Olsen 20 마케팅
154 Nanette Cambrault 20 마케팅
155 Oliver Tuvault 20 마케팅
156 Janette King 20 마케팅
157 Patrick Sully 20 마케팅
158 Allan McEwen 20 마케팅
159 Lindsey Smith 20 마케팅
160 Louise Doran 20 마케팅
161 Sarath Sewall 20 마케팅
162 Clara Vishney 20 마케팅
163 Danielle Greene 20 마케팅
164 Mattea Marvins 20 마케팅
165 David Lee 20 마케팅
166 Sundar Ande 20 마케팅
167 Amit Banda 20 마케팅
168 Lisa Ozer 20 마케팅
169 Harrison Bloom 20 마케팅
170 Tayler Fox 20 마케팅
171 William Smith 20 마케팅
172 Elizabeth Bates 20 마케팅
173 Sundita Kumar 20 마케팅
174 Ellen Abel 20 마케팅
175 Alyssa Hutton 20 마케팅
176 Jonathon Taylor 20 마케팅
177 Jack Livingston 20 마케팅
178 Kimberely Grant 20 마케팅
179 Charles Johnson 20 마케팅
180 Winston Taylor 20 마케팅
181 Jean Fleaur 20 마케팅
182 Martha Sullivan 20 마케팅
183 Girard Geoni 20 마케팅
184 Nandita Sarchand 20 마케팅
185 Alexis Bull 20 마케팅
186 Julia Dellinger 20 마케팅
187 Anthony Cabrio 20 마케팅
188 Kelly Chung 20 마케팅
189 Jennifer Dilly 20 마케팅
190 Timothy Gates 20 마케팅
191 Randall Perkins 20 마케팅
192 Sarah Bell 20 마케팅
193 Britney Everett 20 마케팅
194 Samuel McCain 20 마케팅
195 Vance Jones 20 마케팅
196 Alana Walsh 20 마케팅
197 Kevin Feeney 20 마케팅
198 Donald OConnell 30 구매/생산부
199 Douglas Grant 30 구매/생산부
200 Jennifer Whalen 30 구매/생산부
201 Michael Hartstein 30 구매/생산부
202 Pat Fay 30 구매/생산부
203 Susan Mavris 30 구매/생산부
204 Hermann Baer 30 구매/생산부
205 Shelley Higgins 30 구매/생산부
206 William Gietz 30 구매/생산부
100 Steven King 30 구매/생산부
101 Neena Kochhar 30 구매/생산부
102 Lex De Haan 30 구매/생산부
103 Alexander Hunold 30 구매/생산부
104 Bruce Ernst 30 구매/생산부
105 David Austin 30 구매/생산부
106 Valli Pataballa 30 구매/생산부
107 Diana Lorentz 30 구매/생산부
108 Nancy Greenberg 30 구매/생산부
109 Daniel Faviet 30 구매/생산부
110 John Chen 30 구매/생산부
111 Ismael Sciarra 30 구매/생산부
112 Jose Manuel Urman 30 구매/생산부
113 Luis Popp 30 구매/생산부
114 Den Raphaely 30 구매/생산부
115 Alexander Khoo 30 구매/생산부
116 Shelli Baida 30 구매/생산부
117 Sigal Tobias 30 구매/생산부
118 Guy Himuro 30 구매/생산부
119 Karen Colmenares 30 구매/생산부
120 Matthew Weiss 30 구매/생산부
121 Adam Fripp 30 구매/생산부
122 Payam Kaufling 30 구매/생산부
123 Shanta Vollman 30 구매/생산부
124 Kevin Mourgos 30 구매/생산부
125 Julia Nayer 30 구매/생산부
126 Irene Mikkilineni 30 구매/생산부
127 James Landry 30 구매/생산부
128 Steven Markle 30 구매/생산부
129 Laura Bissot 30 구매/생산부
130 Mozhe Atkinson 30 구매/생산부
131 James Marlow 30 구매/생산부
132 TJ Olson 30 구매/생산부
133 Jason Mallin 30 구매/생산부
134 Michael Rogers 30 구매/생산부
135 Ki Gee 30 구매/생산부
136 Hazel Philtanker 30 구매/생산부
137 Renske Ladwig 30 구매/생산부
138 Stephen Stiles 30 구매/생산부
139 John Seo 30 구매/생산부
140 Joshua Patel 30 구매/생산부
141 Trenna Rajs 30 구매/생산부
142 Curtis Davies 30 구매/생산부
143 Randall Matos 30 구매/생산부
144 Peter Vargas 30 구매/생산부
145 John Russell 30 구매/생산부
146 Karen Partners 30 구매/생산부
147 Alberto Errazuriz 30 구매/생산부
148 Gerald Cambrault 30 구매/생산부
149 Eleni Zlotkey 30 구매/생산부
150 Peter Tucker 30 구매/생산부
151 David Bernstein 30 구매/생산부
152 Peter Hall 30 구매/생산부
153 Christopher Olsen 30 구매/생산부
154 Nanette Cambrault 30 구매/생산부
155 Oliver Tuvault 30 구매/생산부
156 Janette King 30 구매/생산부
157 Patrick Sully 30 구매/생산부
158 Allan McEwen 30 구매/생산부
159 Lindsey Smith 30 구매/생산부
160 Louise Doran 30 구매/생산부
161 Sarath Sewall 30 구매/생산부
162 Clara Vishney 30 구매/생산부
163 Danielle Greene 30 구매/생산부
164 Mattea Marvins 30 구매/생산부
165 David Lee 30 구매/생산부
166 Sundar Ande 30 구매/생산부
167 Amit Banda 30 구매/생산부
168 Lisa Ozer 30 구매/생산부
169 Harrison Bloom 30 구매/생산부
170 Tayler Fox 30 구매/생산부
171 William Smith 30 구매/생산부
172 Elizabeth Bates 30 구매/생산부
173 Sundita Kumar 30 구매/생산부
174 Ellen Abel 30 구매/생산부
175 Alyssa Hutton 30 구매/생산부
176 Jonathon Taylor 30 구매/생산부
177 Jack Livingston 30 구매/생산부
178 Kimberely Grant 30 구매/생산부
179 Charles Johnson 30 구매/생산부
180 Winston Taylor 30 구매/생산부
181 Jean Fleaur 30 구매/생산부
182 Martha Sullivan 30 구매/생산부
183 Girard Geoni 30 구매/생산부
184 Nandita Sarchand 30 구매/생산부
185 Alexis Bull 30 구매/생산부
186 Julia Dellinger 30 구매/생산부
187 Anthony Cabrio 30 구매/생산부
188 Kelly Chung 30 구매/생산부
189 Jennifer Dilly 30 구매/생산부
190 Timothy Gates 30 구매/생산부
191 Randall Perkins 30 구매/생산부
192 Sarah Bell 30 구매/생산부
193 Britney Everett 30 구매/생산부
194 Samuel McCain 30 구매/생산부
195 Vance Jones 30 구매/생산부
196 Alana Walsh 30 구매/생산부
197 Kevin Feeney 30 구매/생산부
198 Donald OConnell 40 인사부
199 Douglas Grant 40 인사부
200 Jennifer Whalen 40 인사부
201 Michael Hartstein 40 인사부
202 Pat Fay 40 인사부
203 Susan Mavris 40 인사부
204 Hermann Baer 40 인사부
205 Shelley Higgins 40 인사부
206 William Gietz 40 인사부
100 Steven King 40 인사부
101 Neena Kochhar 40 인사부
102 Lex De Haan 40 인사부
103 Alexander Hunold 40 인사부
104 Bruce Ernst 40 인사부
105 David Austin 40 인사부
106 Valli Pataballa 40 인사부
107 Diana Lorentz 40 인사부
108 Nancy Greenberg 40 인사부
109 Daniel Faviet 40 인사부
110 John Chen 40 인사부
111 Ismael Sciarra 40 인사부
112 Jose Manuel Urman 40 인사부
113 Luis Popp 40 인사부
114 Den Raphaely 40 인사부
115 Alexander Khoo 40 인사부
116 Shelli Baida 40 인사부
117 Sigal Tobias 40 인사부
118 Guy Himuro 40 인사부
119 Karen Colmenares 40 인사부
120 Matthew Weiss 40 인사부
121 Adam Fripp 40 인사부
122 Payam Kaufling 40 인사부
123 Shanta Vollman 40 인사부
124 Kevin Mourgos 40 인사부
125 Julia Nayer 40 인사부
126 Irene Mikkilineni 40 인사부
127 James Landry 40 인사부
128 Steven Markle 40 인사부
129 Laura Bissot 40 인사부
130 Mozhe Atkinson 40 인사부
131 James Marlow 40 인사부
132 TJ Olson 40 인사부
133 Jason Mallin 40 인사부
134 Michael Rogers 40 인사부
135 Ki Gee 40 인사부
136 Hazel Philtanker 40 인사부
137 Renske Ladwig 40 인사부
138 Stephen Stiles 40 인사부
139 John Seo 40 인사부
140 Joshua Patel 40 인사부
141 Trenna Rajs 40 인사부
142 Curtis Davies 40 인사부
143 Randall Matos 40 인사부
144 Peter Vargas 40 인사부
145 John Russell 40 인사부
146 Karen Partners 40 인사부
147 Alberto Errazuriz 40 인사부
148 Gerald Cambrault 40 인사부
149 Eleni Zlotkey 40 인사부
150 Peter Tucker 40 인사부
151 David Bernstein 40 인사부
152 Peter Hall 40 인사부
153 Christopher Olsen 40 인사부
154 Nanette Cambrault 40 인사부
155 Oliver Tuvault 40 인사부
156 Janette King 40 인사부
157 Patrick Sully 40 인사부
158 Allan McEwen 40 인사부
159 Lindsey Smith 40 인사부
160 Louise Doran 40 인사부
161 Sarath Sewall 40 인사부
162 Clara Vishney 40 인사부
163 Danielle Greene 40 인사부
164 Mattea Marvins 40 인사부
165 David Lee 40 인사부
166 Sundar Ande 40 인사부
167 Amit Banda 40 인사부
168 Lisa Ozer 40 인사부
169 Harrison Bloom 40 인사부
170 Tayler Fox 40 인사부
171 William Smith 40 인사부
172 Elizabeth Bates 40 인사부
173 Sundita Kumar 40 인사부
174 Ellen Abel 40 인사부
175 Alyssa Hutton 40 인사부
176 Jonathon Taylor 40 인사부
177 Jack Livingston 40 인사부
178 Kimberely Grant 40 인사부
179 Charles Johnson 40 인사부
180 Winston Taylor 40 인사부
181 Jean Fleaur 40 인사부
182 Martha Sullivan 40 인사부
183 Girard Geoni 40 인사부
184 Nandita Sarchand 40 인사부
185 Alexis Bull 40 인사부
186 Julia Dellinger 40 인사부
187 Anthony Cabrio 40 인사부
188 Kelly Chung 40 인사부
189 Jennifer Dilly 40 인사부
190 Timothy Gates 40 인사부
191 Randall Perkins 40 인사부
192 Sarah Bell 40 인사부
193 Britney Everett 40 인사부
194 Samuel McCain 40 인사부
195 Vance Jones 40 인사부
196 Alana Walsh 40 인사부
197 Kevin Feeney 40 인사부
198 Donald OConnell 50 배송부
199 Douglas Grant 50 배송부
200 Jennifer Whalen 50 배송부
201 Michael Hartstein 50 배송부
202 Pat Fay 50 배송부
203 Susan Mavris 50 배송부
204 Hermann Baer 50 배송부
205 Shelley Higgins 50 배송부
206 William Gietz 50 배송부
100 Steven King 50 배송부
101 Neena Kochhar 50 배송부
102 Lex De Haan 50 배송부
103 Alexander Hunold 50 배송부
104 Bruce Ernst 50 배송부
105 David Austin 50 배송부
106 Valli Pataballa 50 배송부
107 Diana Lorentz 50 배송부
108 Nancy Greenberg 50 배송부
109 Daniel Faviet 50 배송부
110 John Chen 50 배송부
111 Ismael Sciarra 50 배송부
112 Jose Manuel Urman 50 배송부
113 Luis Popp 50 배송부
114 Den Raphaely 50 배송부
115 Alexander Khoo 50 배송부
116 Shelli Baida 50 배송부
117 Sigal Tobias 50 배송부
118 Guy Himuro 50 배송부
119 Karen Colmenares 50 배송부
120 Matthew Weiss 50 배송부
121 Adam Fripp 50 배송부
122 Payam Kaufling 50 배송부
123 Shanta Vollman 50 배송부
124 Kevin Mourgos 50 배송부
125 Julia Nayer 50 배송부
126 Irene Mikkilineni 50 배송부
127 James Landry 50 배송부
128 Steven Markle 50 배송부
129 Laura Bissot 50 배송부
130 Mozhe Atkinson 50 배송부
131 James Marlow 50 배송부
132 TJ Olson 50 배송부
133 Jason Mallin 50 배송부
134 Michael Rogers 50 배송부
135 Ki Gee 50 배송부
136 Hazel Philtanker 50 배송부
137 Renske Ladwig 50 배송부
138 Stephen Stiles 50 배송부
139 John Seo 50 배송부
140 Joshua Patel 50 배송부
141 Trenna Rajs 50 배송부
142 Curtis Davies 50 배송부
143 Randall Matos 50 배송부
144 Peter Vargas 50 배송부
145 John Russell 50 배송부
146 Karen Partners 50 배송부
147 Alberto Errazuriz 50 배송부
148 Gerald Cambrault 50 배송부
149 Eleni Zlotkey 50 배송부
150 Peter Tucker 50 배송부
151 David Bernstein 50 배송부
152 Peter Hall 50 배송부
153 Christopher Olsen 50 배송부
154 Nanette Cambrault 50 배송부
155 Oliver Tuvault 50 배송부
156 Janette King 50 배송부
157 Patrick Sully 50 배송부
158 Allan McEwen 50 배송부
159 Lindsey Smith 50 배송부
160 Louise Doran 50 배송부
161 Sarath Sewall 50 배송부
162 Clara Vishney 50 배송부
163 Danielle Greene 50 배송부
164 Mattea Marvins 50 배송부
165 David Lee 50 배송부
166 Sundar Ande 50 배송부
167 Amit Banda 50 배송부
168 Lisa Ozer 50 배송부
169 Harrison Bloom 50 배송부
170 Tayler Fox 50 배송부
171 William Smith 50 배송부
172 Elizabeth Bates 50 배송부
173 Sundita Kumar 50 배송부
174 Ellen Abel 50 배송부
175 Alyssa Hutton 50 배송부
176 Jonathon Taylor 50 배송부
177 Jack Livingston 50 배송부
178 Kimberely Grant 50 배송부
179 Charles Johnson 50 배송부
180 Winston Taylor 50 배송부
181 Jean Fleaur 50 배송부
182 Martha Sullivan 50 배송부
183 Girard Geoni 50 배송부
184 Nandita Sarchand 50 배송부
185 Alexis Bull 50 배송부
186 Julia Dellinger 50 배송부
187 Anthony Cabrio 50 배송부
188 Kelly Chung 50 배송부
189 Jennifer Dilly 50 배송부
190 Timothy Gates 50 배송부
191 Randall Perkins 50 배송부
192 Sarah Bell 50 배송부
193 Britney Everett 50 배송부
194 Samuel McCain 50 배송부
195 Vance Jones 50 배송부
196 Alana Walsh 50 배송부
197 Kevin Feeney 50 배송부
198 Donald OConnell 60 IT
199 Douglas Grant 60 IT
200 Jennifer Whalen 60 IT
201 Michael Hartstein 60 IT
202 Pat Fay 60 IT
203 Susan Mavris 60 IT
204 Hermann Baer 60 IT
205 Shelley Higgins 60 IT
206 William Gietz 60 IT
100 Steven King 60 IT
101 Neena Kochhar 60 IT
102 Lex De Haan 60 IT
103 Alexander Hunold 60 IT
104 Bruce Ernst 60 IT
105 David Austin 60 IT
106 Valli Pataballa 60 IT
107 Diana Lorentz 60 IT
108 Nancy Greenberg 60 IT
109 Daniel Faviet 60 IT
110 John Chen 60 IT
111 Ismael Sciarra 60 IT
112 Jose Manuel Urman 60 IT
113 Luis Popp 60 IT
114 Den Raphaely 60 IT
115 Alexander Khoo 60 IT
116 Shelli Baida 60 IT
117 Sigal Tobias 60 IT
118 Guy Himuro 60 IT
119 Karen Colmenares 60 IT
120 Matthew Weiss 60 IT
121 Adam Fripp 60 IT
122 Payam Kaufling 60 IT
123 Shanta Vollman 60 IT
124 Kevin Mourgos 60 IT
125 Julia Nayer 60 IT
126 Irene Mikkilineni 60 IT
127 James Landry 60 IT
128 Steven Markle 60 IT
129 Laura Bissot 60 IT
130 Mozhe Atkinson 60 IT
131 James Marlow 60 IT
132 TJ Olson 60 IT
133 Jason Mallin 60 IT
134 Michael Rogers 60 IT
135 Ki Gee 60 IT
136 Hazel Philtanker 60 IT
137 Renske Ladwig 60 IT
138 Stephen Stiles 60 IT
139 John Seo 60 IT
140 Joshua Patel 60 IT
141 Trenna Rajs 60 IT
142 Curtis Davies 60 IT
143 Randall Matos 60 IT
144 Peter Vargas 60 IT
145 John Russell 60 IT
146 Karen Partners 60 IT
147 Alberto Errazuriz 60 IT
148 Gerald Cambrault 60 IT
149 Eleni Zlotkey 60 IT
150 Peter Tucker 60 IT
151 David Bernstein 60 IT
152 Peter Hall 60 IT
153 Christopher Olsen 60 IT
154 Nanette Cambrault 60 IT
155 Oliver Tuvault 60 IT
156 Janette King 60 IT
157 Patrick Sully 60 IT
158 Allan McEwen 60 IT
159 Lindsey Smith 60 IT
160 Louise Doran 60 IT
161 Sarath Sewall 60 IT
162 Clara Vishney 60 IT
163 Danielle Greene 60 IT
164 Mattea Marvins 60 IT
165 David Lee 60 IT
166 Sundar Ande 60 IT
167 Amit Banda 60 IT
168 Lisa Ozer 60 IT
169 Harrison Bloom 60 IT
170 Tayler Fox 60 IT
171 William Smith 60 IT
172 Elizabeth Bates 60 IT
173 Sundita Kumar 60 IT
174 Ellen Abel 60 IT
175 Alyssa Hutton 60 IT
176 Jonathon Taylor 60 IT
177 Jack Livingston 60 IT
178 Kimberely Grant 60 IT
179 Charles Johnson 60 IT
180 Winston Taylor 60 IT
181 Jean Fleaur 60 IT
182 Martha Sullivan 60 IT
183 Girard Geoni 60 IT
184 Nandita Sarchand 60 IT
185 Alexis Bull 60 IT
186 Julia Dellinger 60 IT
187 Anthony Cabrio 60 IT
188 Kelly Chung 60 IT
189 Jennifer Dilly 60 IT
190 Timothy Gates 60 IT
191 Randall Perkins 60 IT
192 Sarah Bell 60 IT
193 Britney Everett 60 IT
194 Samuel McCain 60 IT
195 Vance Jones 60 IT
196 Alana Walsh 60 IT
197 Kevin Feeney 60 IT
198 Donald OConnell 70 홍보부
199 Douglas Grant 70 홍보부
200 Jennifer Whalen 70 홍보부
201 Michael Hartstein 70 홍보부
202 Pat Fay 70 홍보부
203 Susan Mavris 70 홍보부
204 Hermann Baer 70 홍보부
205 Shelley Higgins 70 홍보부
206 William Gietz 70 홍보부
100 Steven King 70 홍보부
101 Neena Kochhar 70 홍보부
102 Lex De Haan 70 홍보부
103 Alexander Hunold 70 홍보부
104 Bruce Ernst 70 홍보부
105 David Austin 70 홍보부
106 Valli Pataballa 70 홍보부
107 Diana Lorentz 70 홍보부
108 Nancy Greenberg 70 홍보부
109 Daniel Faviet 70 홍보부
110 John Chen 70 홍보부
111 Ismael Sciarra 70 홍보부
112 Jose Manuel Urman 70 홍보부
113 Luis Popp 70 홍보부
114 Den Raphaely 70 홍보부
115 Alexander Khoo 70 홍보부
116 Shelli Baida 70 홍보부
117 Sigal Tobias 70 홍보부
118 Guy Himuro 70 홍보부
119 Karen Colmenares 70 홍보부
120 Matthew Weiss 70 홍보부
121 Adam Fripp 70 홍보부
122 Payam Kaufling 70 홍보부
123 Shanta Vollman 70 홍보부
124 Kevin Mourgos 70 홍보부
125 Julia Nayer 70 홍보부
126 Irene Mikkilineni 70 홍보부
127 James Landry 70 홍보부
128 Steven Markle 70 홍보부
129 Laura Bissot 70 홍보부
130 Mozhe Atkinson 70 홍보부
131 James Marlow 70 홍보부
132 TJ Olson 70 홍보부
133 Jason Mallin 70 홍보부
134 Michael Rogers 70 홍보부
135 Ki Gee 70 홍보부
136 Hazel Philtanker 70 홍보부
137 Renske Ladwig 70 홍보부
138 Stephen Stiles 70 홍보부
139 John Seo 70 홍보부
140 Joshua Patel 70 홍보부
141 Trenna Rajs 70 홍보부
142 Curtis Davies 70 홍보부
143 Randall Matos 70 홍보부
144 Peter Vargas 70 홍보부
145 John Russell 70 홍보부
146 Karen Partners 70 홍보부
147 Alberto Errazuriz 70 홍보부
148 Gerald Cambrault 70 홍보부
149 Eleni Zlotkey 70 홍보부
150 Peter Tucker 70 홍보부
151 David Bernstein 70 홍보부
152 Peter Hall 70 홍보부
153 Christopher Olsen 70 홍보부
154 Nanette Cambrault 70 홍보부
155 Oliver Tuvault 70 홍보부
156 Janette King 70 홍보부
157 Patrick Sully 70 홍보부
158 Allan McEwen 70 홍보부
159 Lindsey Smith 70 홍보부
160 Louise Doran 70 홍보부
161 Sarath Sewall 70 홍보부
162 Clara Vishney 70 홍보부
163 Danielle Greene 70 홍보부
164 Mattea Marvins 70 홍보부
165 David Lee 70 홍보부
166 Sundar Ande 70 홍보부
167 Amit Banda 70 홍보부
168 Lisa Ozer 70 홍보부
169 Harrison Bloom 70 홍보부
170 Tayler Fox 70 홍보부
171 William Smith 70 홍보부
172 Elizabeth Bates 70 홍보부
173 Sundita Kumar 70 홍보부
174 Ellen Abel 70 홍보부
175 Alyssa Hutton 70 홍보부
176 Jonathon Taylor 70 홍보부
177 Jack Livingston 70 홍보부
178 Kimberely Grant 70 홍보부
179 Charles Johnson 70 홍보부
180 Winston Taylor 70 홍보부
181 Jean Fleaur 70 홍보부
182 Martha Sullivan 70 홍보부
183 Girard Geoni 70 홍보부
184 Nandita Sarchand 70 홍보부
185 Alexis Bull 70 홍보부
186 Julia Dellinger 70 홍보부
187 Anthony Cabrio 70 홍보부
188 Kelly Chung 70 홍보부
189 Jennifer Dilly 70 홍보부
190 Timothy Gates 70 홍보부
191 Randall Perkins 70 홍보부
192 Sarah Bell 70 홍보부
193 Britney Everett 70 홍보부
194 Samuel McCain 70 홍보부
195 Vance Jones 70 홍보부
196 Alana Walsh 70 홍보부
197 Kevin Feeney 70 홍보부
198 Donald OConnell 80 영업부
199 Douglas Grant 80 영업부
200 Jennifer Whalen 80 영업부
201 Michael Hartstein 80 영업부
202 Pat Fay 80 영업부
203 Susan Mavris 80 영업부
204 Hermann Baer 80 영업부
205 Shelley Higgins 80 영업부
206 William Gietz 80 영업부
100 Steven King 80 영업부
101 Neena Kochhar 80 영업부
102 Lex De Haan 80 영업부
103 Alexander Hunold 80 영업부
104 Bruce Ernst 80 영업부
105 David Austin 80 영업부
106 Valli Pataballa 80 영업부
107 Diana Lorentz 80 영업부
108 Nancy Greenberg 80 영업부
109 Daniel Faviet 80 영업부
110 John Chen 80 영업부
111 Ismael Sciarra 80 영업부
112 Jose Manuel Urman 80 영업부
113 Luis Popp 80 영업부
114 Den Raphaely 80 영업부
115 Alexander Khoo 80 영업부
116 Shelli Baida 80 영업부
117 Sigal Tobias 80 영업부
118 Guy Himuro 80 영업부
119 Karen Colmenares 80 영업부
120 Matthew Weiss 80 영업부
121 Adam Fripp 80 영업부
122 Payam Kaufling 80 영업부
123 Shanta Vollman 80 영업부
124 Kevin Mourgos 80 영업부
125 Julia Nayer 80 영업부
126 Irene Mikkilineni 80 영업부
127 James Landry 80 영업부
128 Steven Markle 80 영업부
129 Laura Bissot 80 영업부
130 Mozhe Atkinson 80 영업부
131 James Marlow 80 영업부
132 TJ Olson 80 영업부
133 Jason Mallin 80 영업부
134 Michael Rogers 80 영업부
135 Ki Gee 80 영업부
136 Hazel Philtanker 80 영업부
137 Renske Ladwig 80 영업부
138 Stephen Stiles 80 영업부
139 John Seo 80 영업부
140 Joshua Patel 80 영업부
141 Trenna Rajs 80 영업부
142 Curtis Davies 80 영업부
143 Randall Matos 80 영업부
144 Peter Vargas 80 영업부
145 John Russell 80 영업부
146 Karen Partners 80 영업부
147 Alberto Errazuriz 80 영업부
148 Gerald Cambrault 80 영업부
149 Eleni Zlotkey 80 영업부
150 Peter Tucker 80 영업부
151 David Bernstein 80 영업부
152 Peter Hall 80 영업부
153 Christopher Olsen 80 영업부
154 Nanette Cambrault 80 영업부
155 Oliver Tuvault 80 영업부
156 Janette King 80 영업부
157 Patrick Sully 80 영업부
158 Allan McEwen 80 영업부
159 Lindsey Smith 80 영업부
160 Louise Doran 80 영업부
161 Sarath Sewall 80 영업부
162 Clara Vishney 80 영업부
163 Danielle Greene 80 영업부
164 Mattea Marvins 80 영업부
165 David Lee 80 영업부
166 Sundar Ande 80 영업부
167 Amit Banda 80 영업부
168 Lisa Ozer 80 영업부
169 Harrison Bloom 80 영업부
170 Tayler Fox 80 영업부
171 William Smith 80 영업부
172 Elizabeth Bates 80 영업부
173 Sundita Kumar 80 영업부
174 Ellen Abel 80 영업부
175 Alyssa Hutton 80 영업부
176 Jonathon Taylor 80 영업부
177 Jack Livingston 80 영업부
178 Kimberely Grant 80 영업부
179 Charles Johnson 80 영업부
180 Winston Taylor 80 영업부
181 Jean Fleaur 80 영업부
182 Martha Sullivan 80 영업부
183 Girard Geoni 80 영업부
184 Nandita Sarchand 80 영업부
185 Alexis Bull 80 영업부
186 Julia Dellinger 80 영업부
187 Anthony Cabrio 80 영업부
188 Kelly Chung 80 영업부
189 Jennifer Dilly 80 영업부
190 Timothy Gates 80 영업부
191 Randall Perkins 80 영업부
192 Sarah Bell 80 영업부
193 Britney Everett 80 영업부
194 Samuel McCain 80 영업부
195 Vance Jones 80 영업부
196 Alana Walsh 80 영업부
197 Kevin Feeney 80 영업부
198 Donald OConnell 90 기획부
199 Douglas Grant 90 기획부
200 Jennifer Whalen 90 기획부
201 Michael Hartstein 90 기획부
202 Pat Fay 90 기획부
203 Susan Mavris 90 기획부
204 Hermann Baer 90 기획부
205 Shelley Higgins 90 기획부
206 William Gietz 90 기획부
100 Steven King 90 기획부
101 Neena Kochhar 90 기획부
102 Lex De Haan 90 기획부
103 Alexander Hunold 90 기획부
104 Bruce Ernst 90 기획부
105 David Austin 90 기획부
106 Valli Pataballa 90 기획부
107 Diana Lorentz 90 기획부
108 Nancy Greenberg 90 기획부
109 Daniel Faviet 90 기획부
110 John Chen 90 기획부
111 Ismael Sciarra 90 기획부
112 Jose Manuel Urman 90 기획부
113 Luis Popp 90 기획부
114 Den Raphaely 90 기획부
115 Alexander Khoo 90 기획부
116 Shelli Baida 90 기획부
117 Sigal Tobias 90 기획부
118 Guy Himuro 90 기획부
119 Karen Colmenares 90 기획부
120 Matthew Weiss 90 기획부
121 Adam Fripp 90 기획부
122 Payam Kaufling 90 기획부
123 Shanta Vollman 90 기획부
124 Kevin Mourgos 90 기획부
125 Julia Nayer 90 기획부
126 Irene Mikkilineni 90 기획부
127 James Landry 90 기획부
128 Steven Markle 90 기획부
129 Laura Bissot 90 기획부
130 Mozhe Atkinson 90 기획부
131 James Marlow 90 기획부
132 TJ Olson 90 기획부
133 Jason Mallin 90 기획부
134 Michael Rogers 90 기획부
135 Ki Gee 90 기획부
136 Hazel Philtanker 90 기획부
137 Renske Ladwig 90 기획부
138 Stephen Stiles 90 기획부
139 John Seo 90 기획부
140 Joshua Patel 90 기획부
141 Trenna Rajs 90 기획부
142 Curtis Davies 90 기획부
143 Randall Matos 90 기획부
144 Peter Vargas 90 기획부
145 John Russell 90 기획부
146 Karen Partners 90 기획부
147 Alberto Errazuriz 90 기획부
148 Gerald Cambrault 90 기획부
149 Eleni Zlotkey 90 기획부
150 Peter Tucker 90 기획부
151 David Bernstein 90 기획부
152 Peter Hall 90 기획부
153 Christopher Olsen 90 기획부
154 Nanette Cambrault 90 기획부
155 Oliver Tuvault 90 기획부
156 Janette King 90 기획부
157 Patrick Sully 90 기획부
158 Allan McEwen 90 기획부
159 Lindsey Smith 90 기획부
160 Louise Doran 90 기획부
161 Sarath Sewall 90 기획부
162 Clara Vishney 90 기획부
163 Danielle Greene 90 기획부
164 Mattea Marvins 90 기획부
165 David Lee 90 기획부
166 Sundar Ande 90 기획부
167 Amit Banda 90 기획부
168 Lisa Ozer 90 기획부
169 Harrison Bloom 90 기획부
170 Tayler Fox 90 기획부
171 William Smith 90 기획부
172 Elizabeth Bates 90 기획부
173 Sundita Kumar 90 기획부
174 Ellen Abel 90 기획부
175 Alyssa Hutton 90 기획부
176 Jonathon Taylor 90 기획부
177 Jack Livingston 90 기획부
178 Kimberely Grant 90 기획부
179 Charles Johnson 90 기획부
180 Winston Taylor 90 기획부
181 Jean Fleaur 90 기획부
182 Martha Sullivan 90 기획부
183 Girard Geoni 90 기획부
184 Nandita Sarchand 90 기획부
185 Alexis Bull 90 기획부
186 Julia Dellinger 90 기획부
187 Anthony Cabrio 90 기획부
188 Kelly Chung 90 기획부
189 Jennifer Dilly 90 기획부
190 Timothy Gates 90 기획부
191 Randall Perkins 90 기획부
192 Sarah Bell 90 기획부
193 Britney Everett 90 기획부
194 Samuel McCain 90 기획부
195 Vance Jones 90 기획부
196 Alana Walsh 90 기획부
197 Kevin Feeney 90 기획부
198 Donald OConnell 100 자금부
199 Douglas Grant 100 자금부
200 Jennifer Whalen 100 자금부
201 Michael Hartstein 100 자금부
202 Pat Fay 100 자금부
203 Susan Mavris 100 자금부
204 Hermann Baer 100 자금부
205 Shelley Higgins 100 자금부
206 William Gietz 100 자금부
100 Steven King 100 자금부
101 Neena Kochhar 100 자금부
102 Lex De Haan 100 자금부
103 Alexander Hunold 100 자금부
104 Bruce Ernst 100 자금부
105 David Austin 100 자금부
106 Valli Pataballa 100 자금부
107 Diana Lorentz 100 자금부
108 Nancy Greenberg 100 자금부
109 Daniel Faviet 100 자금부
110 John Chen 100 자금부
111 Ismael Sciarra 100 자금부
112 Jose Manuel Urman 100 자금부
113 Luis Popp 100 자금부
114 Den Raphaely 100 자금부
115 Alexander Khoo 100 자금부
116 Shelli Baida 100 자금부
117 Sigal Tobias 100 자금부
118 Guy Himuro 100 자금부
119 Karen Colmenares 100 자금부
120 Matthew Weiss 100 자금부
121 Adam Fripp 100 자금부
122 Payam Kaufling 100 자금부
123 Shanta Vollman 100 자금부
124 Kevin Mourgos 100 자금부
125 Julia Nayer 100 자금부
126 Irene Mikkilineni 100 자금부
127 James Landry 100 자금부
128 Steven Markle 100 자금부
129 Laura Bissot 100 자금부
130 Mozhe Atkinson 100 자금부
131 James Marlow 100 자금부
132 TJ Olson 100 자금부
133 Jason Mallin 100 자금부
134 Michael Rogers 100 자금부
135 Ki Gee 100 자금부
136 Hazel Philtanker 100 자금부
137 Renske Ladwig 100 자금부
138 Stephen Stiles 100 자금부
139 John Seo 100 자금부
140 Joshua Patel 100 자금부
141 Trenna Rajs 100 자금부
142 Curtis Davies 100 자금부
143 Randall Matos 100 자금부
144 Peter Vargas 100 자금부
145 John Russell 100 자금부
146 Karen Partners 100 자금부
147 Alberto Errazuriz 100 자금부
148 Gerald Cambrault 100 자금부
149 Eleni Zlotkey 100 자금부
150 Peter Tucker 100 자금부
151 David Bernstein 100 자금부
152 Peter Hall 100 자금부
153 Christopher Olsen 100 자금부
154 Nanette Cambrault 100 자금부
155 Oliver Tuvault 100 자금부
156 Janette King 100 자금부
157 Patrick Sully 100 자금부
158 Allan McEwen 100 자금부
159 Lindsey Smith 100 자금부
160 Louise Doran 100 자금부
161 Sarath Sewall 100 자금부
162 Clara Vishney 100 자금부
163 Danielle Greene 100 자금부
164 Mattea Marvins 100 자금부
165 David Lee 100 자금부
166 Sundar Ande 100 자금부
167 Amit Banda 100 자금부
168 Lisa Ozer 100 자금부
169 Harrison Bloom 100 자금부
170 Tayler Fox 100 자금부
171 William Smith 100 자금부
172 Elizabeth Bates 100 자금부
173 Sundita Kumar 100 자금부
174 Ellen Abel 100 자금부
175 Alyssa Hutton 100 자금부
176 Jonathon Taylor 100 자금부
177 Jack Livingston 100 자금부
178 Kimberely Grant 100 자금부
179 Charles Johnson 100 자금부
180 Winston Taylor 100 자금부
181 Jean Fleaur 100 자금부
182 Martha Sullivan 100 자금부
183 Girard Geoni 100 자금부
184 Nandita Sarchand 100 자금부
185 Alexis Bull 100 자금부
186 Julia Dellinger 100 자금부
187 Anthony Cabrio 100 자금부
188 Kelly Chung 100 자금부
189 Jennifer Dilly 100 자금부
190 Timothy Gates 100 자금부
191 Randall Perkins 100 자금부
192 Sarah Bell 100 자금부
193 Britney Everett 100 자금부
194 Samuel McCain 100 자금부
195 Vance Jones 100 자금부
196 Alana Walsh 100 자금부
197 Kevin Feeney 100 자금부
198 Donald OConnell 110 경리부
199 Douglas Grant 110 경리부
200 Jennifer Whalen 110 경리부
201 Michael Hartstein 110 경리부
202 Pat Fay 110 경리부
203 Susan Mavris 110 경리부
204 Hermann Baer 110 경리부
205 Shelley Higgins 110 경리부
206 William Gietz 110 경리부
100 Steven King 110 경리부
101 Neena Kochhar 110 경리부
102 Lex De Haan 110 경리부
103 Alexander Hunold 110 경리부
104 Bruce Ernst 110 경리부
105 David Austin 110 경리부
106 Valli Pataballa 110 경리부
107 Diana Lorentz 110 경리부
108 Nancy Greenberg 110 경리부
109 Daniel Faviet 110 경리부
110 John Chen 110 경리부
111 Ismael Sciarra 110 경리부
112 Jose Manuel Urman 110 경리부
113 Luis Popp 110 경리부
114 Den Raphaely 110 경리부
115 Alexander Khoo 110 경리부
116 Shelli Baida 110 경리부
117 Sigal Tobias 110 경리부
118 Guy Himuro 110 경리부
119 Karen Colmenares 110 경리부
120 Matthew Weiss 110 경리부
121 Adam Fripp 110 경리부
122 Payam Kaufling 110 경리부
123 Shanta Vollman 110 경리부
124 Kevin Mourgos 110 경리부
125 Julia Nayer 110 경리부
126 Irene Mikkilineni 110 경리부
127 James Landry 110 경리부
128 Steven Markle 110 경리부
129 Laura Bissot 110 경리부
130 Mozhe Atkinson 110 경리부
131 James Marlow 110 경리부
132 TJ Olson 110 경리부
133 Jason Mallin 110 경리부
134 Michael Rogers 110 경리부
135 Ki Gee 110 경리부
136 Hazel Philtanker 110 경리부
137 Renske Ladwig 110 경리부
138 Stephen Stiles 110 경리부
139 John Seo 110 경리부
140 Joshua Patel 110 경리부
141 Trenna Rajs 110 경리부
142 Curtis Davies 110 경리부
143 Randall Matos 110 경리부
144 Peter Vargas 110 경리부
145 John Russell 110 경리부
146 Karen Partners 110 경리부
147 Alberto Errazuriz 110 경리부
148 Gerald Cambrault 110 경리부
149 Eleni Zlotkey 110 경리부
150 Peter Tucker 110 경리부
151 David Bernstein 110 경리부
152 Peter Hall 110 경리부
153 Christopher Olsen 110 경리부
154 Nanette Cambrault 110 경리부
155 Oliver Tuvault 110 경리부
156 Janette King 110 경리부
157 Patrick Sully 110 경리부
158 Allan McEwen 110 경리부
159 Lindsey Smith 110 경리부
160 Louise Doran 110 경리부
161 Sarath Sewall 110 경리부
162 Clara Vishney 110 경리부
163 Danielle Greene 110 경리부
164 Mattea Marvins 110 경리부
165 David Lee 110 경리부
166 Sundar Ande 110 경리부
167 Amit Banda 110 경리부
168 Lisa Ozer 110 경리부
169 Harrison Bloom 110 경리부
170 Tayler Fox 110 경리부
171 William Smith 110 경리부
172 Elizabeth Bates 110 경리부
173 Sundita Kumar 110 경리부
174 Ellen Abel 110 경리부
175 Alyssa Hutton 110 경리부
176 Jonathon Taylor 110 경리부
177 Jack Livingston 110 경리부
178 Kimberely Grant 110 경리부
179 Charles Johnson 110 경리부
180 Winston Taylor 110 경리부
181 Jean Fleaur 110 경리부
182 Martha Sullivan 110 경리부
183 Girard Geoni 110 경리부
184 Nandita Sarchand 110 경리부
185 Alexis Bull 110 경리부
186 Julia Dellinger 110 경리부
187 Anthony Cabrio 110 경리부
188 Kelly Chung 110 경리부
189 Jennifer Dilly 110 경리부
190 Timothy Gates 110 경리부
191 Randall Perkins 110 경리부
192 Sarah Bell 110 경리부
193 Britney Everett 110 경리부
194 Samuel McCain 110 경리부
195 Vance Jones 110 경리부
196 Alana Walsh 110 경리부
197 Kevin Feeney 110 경리부
198 Donald OConnell 120 재무팀
199 Douglas Grant 120 재무팀
200 Jennifer Whalen 120 재무팀
201 Michael Hartstein 120 재무팀
202 Pat Fay 120 재무팀
203 Susan Mavris 120 재무팀
204 Hermann Baer 120 재무팀
205 Shelley Higgins 120 재무팀
206 William Gietz 120 재무팀
100 Steven King 120 재무팀
101 Neena Kochhar 120 재무팀
102 Lex De Haan 120 재무팀
103 Alexander Hunold 120 재무팀
104 Bruce Ernst 120 재무팀
105 David Austin 120 재무팀
106 Valli Pataballa 120 재무팀
107 Diana Lorentz 120 재무팀
108 Nancy Greenberg 120 재무팀
109 Daniel Faviet 120 재무팀
110 John Chen 120 재무팀
111 Ismael Sciarra 120 재무팀
112 Jose Manuel Urman 120 재무팀
113 Luis Popp 120 재무팀
114 Den Raphaely 120 재무팀
115 Alexander Khoo 120 재무팀
116 Shelli Baida 120 재무팀
117 Sigal Tobias 120 재무팀
118 Guy Himuro 120 재무팀
119 Karen Colmenares 120 재무팀
120 Matthew Weiss 120 재무팀
121 Adam Fripp 120 재무팀
122 Payam Kaufling 120 재무팀
123 Shanta Vollman 120 재무팀
124 Kevin Mourgos 120 재무팀
125 Julia Nayer 120 재무팀
126 Irene Mikkilineni 120 재무팀
127 James Landry 120 재무팀
128 Steven Markle 120 재무팀
129 Laura Bissot 120 재무팀
130 Mozhe Atkinson 120 재무팀
131 James Marlow 120 재무팀
132 TJ Olson 120 재무팀
133 Jason Mallin 120 재무팀
134 Michael Rogers 120 재무팀
135 Ki Gee 120 재무팀
136 Hazel Philtanker 120 재무팀
137 Renske Ladwig 120 재무팀
138 Stephen Stiles 120 재무팀
139 John Seo 120 재무팀
140 Joshua Patel 120 재무팀
141 Trenna Rajs 120 재무팀
142 Curtis Davies 120 재무팀
143 Randall Matos 120 재무팀
144 Peter Vargas 120 재무팀
145 John Russell 120 재무팀
146 Karen Partners 120 재무팀
147 Alberto Errazuriz 120 재무팀
148 Gerald Cambrault 120 재무팀
149 Eleni Zlotkey 120 재무팀
150 Peter Tucker 120 재무팀
151 David Bernstein 120 재무팀
152 Peter Hall 120 재무팀
153 Christopher Olsen 120 재무팀
154 Nanette Cambrault 120 재무팀
155 Oliver Tuvault 120 재무팀
156 Janette King 120 재무팀
157 Patrick Sully 120 재무팀
158 Allan McEwen 120 재무팀
159 Lindsey Smith 120 재무팀
160 Louise Doran 120 재무팀
161 Sarath Sewall 120 재무팀
162 Clara Vishney 120 재무팀
163 Danielle Greene 120 재무팀
164 Mattea Marvins 120 재무팀
165 David Lee 120 재무팀
166 Sundar Ande 120 재무팀
167 Amit Banda 120 재무팀
168 Lisa Ozer 120 재무팀
169 Harrison Bloom 120 재무팀
170 Tayler Fox 120 재무팀
171 William Smith 120 재무팀
172 Elizabeth Bates 120 재무팀
173 Sundita Kumar 120 재무팀
174 Ellen Abel 120 재무팀
175 Alyssa Hutton 120 재무팀
176 Jonathon Taylor 120 재무팀
177 Jack Livingston 120 재무팀
178 Kimberely Grant 120 재무팀
179 Charles Johnson 120 재무팀
180 Winston Taylor 120 재무팀
181 Jean Fleaur 120 재무팀
182 Martha Sullivan 120 재무팀
183 Girard Geoni 120 재무팀
184 Nandita Sarchand 120 재무팀
185 Alexis Bull 120 재무팀
186 Julia Dellinger 120 재무팀
187 Anthony Cabrio 120 재무팀
188 Kelly Chung 120 재무팀
189 Jennifer Dilly 120 재무팀
190 Timothy Gates 120 재무팀
191 Randall Perkins 120 재무팀
192 Sarah Bell 120 재무팀
193 Britney Everett 120 재무팀
194 Samuel McCain 120 재무팀
195 Vance Jones 120 재무팀
196 Alana Walsh 120 재무팀
197 Kevin Feeney 120 재무팀
198 Donald OConnell 130 세무팀
199 Douglas Grant 130 세무팀
200 Jennifer Whalen 130 세무팀
201 Michael Hartstein 130 세무팀
202 Pat Fay 130 세무팀
203 Susan Mavris 130 세무팀
204 Hermann Baer 130 세무팀
205 Shelley Higgins 130 세무팀
206 William Gietz 130 세무팀
100 Steven King 130 세무팀
101 Neena Kochhar 130 세무팀
102 Lex De Haan 130 세무팀
103 Alexander Hunold 130 세무팀
104 Bruce Ernst 130 세무팀
105 David Austin 130 세무팀
106 Valli Pataballa 130 세무팀
107 Diana Lorentz 130 세무팀
108 Nancy Greenberg 130 세무팀
109 Daniel Faviet 130 세무팀
110 John Chen 130 세무팀
111 Ismael Sciarra 130 세무팀
112 Jose Manuel Urman 130 세무팀
113 Luis Popp 130 세무팀
114 Den Raphaely 130 세무팀
115 Alexander Khoo 130 세무팀
116 Shelli Baida 130 세무팀
117 Sigal Tobias 130 세무팀
118 Guy Himuro 130 세무팀
119 Karen Colmenares 130 세무팀
120 Matthew Weiss 130 세무팀
121 Adam Fripp 130 세무팀
122 Payam Kaufling 130 세무팀
123 Shanta Vollman 130 세무팀
124 Kevin Mourgos 130 세무팀
125 Julia Nayer 130 세무팀
126 Irene Mikkilineni 130 세무팀
127 James Landry 130 세무팀
128 Steven Markle 130 세무팀
129 Laura Bissot 130 세무팀
130 Mozhe Atkinson 130 세무팀
131 James Marlow 130 세무팀
132 TJ Olson 130 세무팀
133 Jason Mallin 130 세무팀
134 Michael Rogers 130 세무팀
135 Ki Gee 130 세무팀
136 Hazel Philtanker 130 세무팀
137 Renske Ladwig 130 세무팀
138 Stephen Stiles 130 세무팀
139 John Seo 130 세무팀
140 Joshua Patel 130 세무팀
141 Trenna Rajs 130 세무팀
142 Curtis Davies 130 세무팀
143 Randall Matos 130 세무팀
144 Peter Vargas 130 세무팀
145 John Russell 130 세무팀
146 Karen Partners 130 세무팀
147 Alberto Errazuriz 130 세무팀
148 Gerald Cambrault 130 세무팀
149 Eleni Zlotkey 130 세무팀
150 Peter Tucker 130 세무팀
151 David Bernstein 130 세무팀
152 Peter Hall 130 세무팀
153 Christopher Olsen 130 세무팀
154 Nanette Cambrault 130 세무팀
155 Oliver Tuvault 130 세무팀
156 Janette King 130 세무팀
157 Patrick Sully 130 세무팀
158 Allan McEwen 130 세무팀
159 Lindsey Smith 130 세무팀
160 Louise Doran 130 세무팀
161 Sarath Sewall 130 세무팀
162 Clara Vishney 130 세무팀
163 Danielle Greene 130 세무팀
164 Mattea Marvins 130 세무팀
165 David Lee 130 세무팀
166 Sundar Ande 130 세무팀
167 Amit Banda 130 세무팀
168 Lisa Ozer 130 세무팀
169 Harrison Bloom 130 세무팀
170 Tayler Fox 130 세무팀
171 William Smith 130 세무팀
172 Elizabeth Bates 130 세무팀
173 Sundita Kumar 130 세무팀
174 Ellen Abel 130 세무팀
175 Alyssa Hutton 130 세무팀
176 Jonathon Taylor 130 세무팀
177 Jack Livingston 130 세무팀
178 Kimberely Grant 130 세무팀
179 Charles Johnson 130 세무팀
180 Winston Taylor 130 세무팀
181 Jean Fleaur 130 세무팀
182 Martha Sullivan 130 세무팀
183 Girard Geoni 130 세무팀
184 Nandita Sarchand 130 세무팀
185 Alexis Bull 130 세무팀
186 Julia Dellinger 130 세무팀
187 Anthony Cabrio 130 세무팀
188 Kelly Chung 130 세무팀
189 Jennifer Dilly 130 세무팀
190 Timothy Gates 130 세무팀
191 Randall Perkins 130 세무팀
192 Sarah Bell 130 세무팀
193 Britney Everett 130 세무팀
194 Samuel McCain 130 세무팀
195 Vance Jones 130 세무팀
196 Alana Walsh 130 세무팀
197 Kevin Feeney 130 세무팀
198 Donald OConnell 140 신용관리팀
199 Douglas Grant 140 신용관리팀
200 Jennifer Whalen 140 신용관리팀
201 Michael Hartstein 140 신용관리팀
202 Pat Fay 140 신용관리팀
203 Susan Mavris 140 신용관리팀
204 Hermann Baer 140 신용관리팀
205 Shelley Higgins 140 신용관리팀
206 William Gietz 140 신용관리팀
100 Steven King 140 신용관리팀
101 Neena Kochhar 140 신용관리팀
102 Lex De Haan 140 신용관리팀
103 Alexander Hunold 140 신용관리팀
104 Bruce Ernst 140 신용관리팀
105 David Austin 140 신용관리팀
106 Valli Pataballa 140 신용관리팀
107 Diana Lorentz 140 신용관리팀
108 Nancy Greenberg 140 신용관리팀
109 Daniel Faviet 140 신용관리팀
110 John Chen 140 신용관리팀
111 Ismael Sciarra 140 신용관리팀
112 Jose Manuel Urman 140 신용관리팀
113 Luis Popp 140 신용관리팀
114 Den Raphaely 140 신용관리팀
115 Alexander Khoo 140 신용관리팀
116 Shelli Baida 140 신용관리팀
117 Sigal Tobias 140 신용관리팀
118 Guy Himuro 140 신용관리팀
119 Karen Colmenares 140 신용관리팀
120 Matthew Weiss 140 신용관리팀
121 Adam Fripp 140 신용관리팀
122 Payam Kaufling 140 신용관리팀
123 Shanta Vollman 140 신용관리팀
124 Kevin Mourgos 140 신용관리팀
125 Julia Nayer 140 신용관리팀
126 Irene Mikkilineni 140 신용관리팀
127 James Landry 140 신용관리팀
128 Steven Markle 140 신용관리팀
129 Laura Bissot 140 신용관리팀
130 Mozhe Atkinson 140 신용관리팀
131 James Marlow 140 신용관리팀
132 TJ Olson 140 신용관리팀
133 Jason Mallin 140 신용관리팀
134 Michael Rogers 140 신용관리팀
135 Ki Gee 140 신용관리팀
136 Hazel Philtanker 140 신용관리팀
137 Renske Ladwig 140 신용관리팀
138 Stephen Stiles 140 신용관리팀
139 John Seo 140 신용관리팀
140 Joshua Patel 140 신용관리팀
141 Trenna Rajs 140 신용관리팀
142 Curtis Davies 140 신용관리팀
143 Randall Matos 140 신용관리팀
144 Peter Vargas 140 신용관리팀
145 John Russell 140 신용관리팀
146 Karen Partners 140 신용관리팀
147 Alberto Errazuriz 140 신용관리팀
148 Gerald Cambrault 140 신용관리팀
149 Eleni Zlotkey 140 신용관리팀
150 Peter Tucker 140 신용관리팀
151 David Bernstein 140 신용관리팀
152 Peter Hall 140 신용관리팀
153 Christopher Olsen 140 신용관리팀
154 Nanette Cambrault 140 신용관리팀
155 Oliver Tuvault 140 신용관리팀
156 Janette King 140 신용관리팀
157 Patrick Sully 140 신용관리팀
158 Allan McEwen 140 신용관리팀
159 Lindsey Smith 140 신용관리팀
160 Louise Doran 140 신용관리팀
161 Sarath Sewall 140 신용관리팀
162 Clara Vishney 140 신용관리팀
163 Danielle Greene 140 신용관리팀
164 Mattea Marvins 140 신용관리팀
165 David Lee 140 신용관리팀
166 Sundar Ande 140 신용관리팀
167 Amit Banda 140 신용관리팀
168 Lisa Ozer 140 신용관리팀
169 Harrison Bloom 140 신용관리팀
170 Tayler Fox 140 신용관리팀
171 William Smith 140 신용관리팀
172 Elizabeth Bates 140 신용관리팀
173 Sundita Kumar 140 신용관리팀
174 Ellen Abel 140 신용관리팀
175 Alyssa Hutton 140 신용관리팀
176 Jonathon Taylor 140 신용관리팀
177 Jack Livingston 140 신용관리팀
178 Kimberely Grant 140 신용관리팀
179 Charles Johnson 140 신용관리팀
180 Winston Taylor 140 신용관리팀
181 Jean Fleaur 140 신용관리팀
182 Martha Sullivan 140 신용관리팀
183 Girard Geoni 140 신용관리팀
184 Nandita Sarchand 140 신용관리팀
185 Alexis Bull 140 신용관리팀
186 Julia Dellinger 140 신용관리팀
187 Anthony Cabrio 140 신용관리팀
188 Kelly Chung 140 신용관리팀
189 Jennifer Dilly 140 신용관리팀
190 Timothy Gates 140 신용관리팀
191 Randall Perkins 140 신용관리팀
192 Sarah Bell 140 신용관리팀
193 Britney Everett 140 신용관리팀
194 Samuel McCain 140 신용관리팀
195 Vance Jones 140 신용관리팀
196 Alana Walsh 140 신용관리팀
197 Kevin Feeney 140 신용관리팀
198 Donald OConnell 150 주식관리팀
199 Douglas Grant 150 주식관리팀
200 Jennifer Whalen 150 주식관리팀
201 Michael Hartstein 150 주식관리팀
202 Pat Fay 150 주식관리팀
203 Susan Mavris 150 주식관리팀
204 Hermann Baer 150 주식관리팀
205 Shelley Higgins 150 주식관리팀
206 William Gietz 150 주식관리팀
100 Steven King 150 주식관리팀
101 Neena Kochhar 150 주식관리팀
102 Lex De Haan 150 주식관리팀
103 Alexander Hunold 150 주식관리팀
104 Bruce Ernst 150 주식관리팀
105 David Austin 150 주식관리팀
106 Valli Pataballa 150 주식관리팀
107 Diana Lorentz 150 주식관리팀
108 Nancy Greenberg 150 주식관리팀
109 Daniel Faviet 150 주식관리팀
110 John Chen 150 주식관리팀
111 Ismael Sciarra 150 주식관리팀
112 Jose Manuel Urman 150 주식관리팀
113 Luis Popp 150 주식관리팀
114 Den Raphaely 150 주식관리팀
115 Alexander Khoo 150 주식관리팀
116 Shelli Baida 150 주식관리팀
117 Sigal Tobias 150 주식관리팀
118 Guy Himuro 150 주식관리팀
119 Karen Colmenares 150 주식관리팀
120 Matthew Weiss 150 주식관리팀
121 Adam Fripp 150 주식관리팀
122 Payam Kaufling 150 주식관리팀
123 Shanta Vollman 150 주식관리팀
124 Kevin Mourgos 150 주식관리팀
125 Julia Nayer 150 주식관리팀
126 Irene Mikkilineni 150 주식관리팀
127 James Landry 150 주식관리팀
128 Steven Markle 150 주식관리팀
129 Laura Bissot 150 주식관리팀
130 Mozhe Atkinson 150 주식관리팀
131 James Marlow 150 주식관리팀
132 TJ Olson 150 주식관리팀
133 Jason Mallin 150 주식관리팀
134 Michael Rogers 150 주식관리팀
135 Ki Gee 150 주식관리팀
136 Hazel Philtanker 150 주식관리팀
137 Renske Ladwig 150 주식관리팀
138 Stephen Stiles 150 주식관리팀
139 John Seo 150 주식관리팀
140 Joshua Patel 150 주식관리팀
141 Trenna Rajs 150 주식관리팀
142 Curtis Davies 150 주식관리팀
143 Randall Matos 150 주식관리팀
144 Peter Vargas 150 주식관리팀
145 John Russell 150 주식관리팀
146 Karen Partners 150 주식관리팀
147 Alberto Errazuriz 150 주식관리팀
148 Gerald Cambrault 150 주식관리팀
149 Eleni Zlotkey 150 주식관리팀
150 Peter Tucker 150 주식관리팀
151 David Bernstein 150 주식관리팀
152 Peter Hall 150 주식관리팀
153 Christopher Olsen 150 주식관리팀
154 Nanette Cambrault 150 주식관리팀
155 Oliver Tuvault 150 주식관리팀
156 Janette King 150 주식관리팀
157 Patrick Sully 150 주식관리팀
158 Allan McEwen 150 주식관리팀
159 Lindsey Smith 150 주식관리팀
160 Louise Doran 150 주식관리팀
161 Sarath Sewall 150 주식관리팀
162 Clara Vishney 150 주식관리팀
163 Danielle Greene 150 주식관리팀
164 Mattea Marvins 150 주식관리팀
165 David Lee 150 주식관리팀
166 Sundar Ande 150 주식관리팀
167 Amit Banda 150 주식관리팀
168 Lisa Ozer 150 주식관리팀
169 Harrison Bloom 150 주식관리팀
170 Tayler Fox 150 주식관리팀
171 William Smith 150 주식관리팀
172 Elizabeth Bates 150 주식관리팀
173 Sundita Kumar 150 주식관리팀
174 Ellen Abel 150 주식관리팀
175 Alyssa Hutton 150 주식관리팀
176 Jonathon Taylor 150 주식관리팀
177 Jack Livingston 150 주식관리팀
178 Kimberely Grant 150 주식관리팀
179 Charles Johnson 150 주식관리팀
180 Winston Taylor 150 주식관리팀
181 Jean Fleaur 150 주식관리팀
182 Martha Sullivan 150 주식관리팀
183 Girard Geoni 150 주식관리팀
184 Nandita Sarchand 150 주식관리팀
185 Alexis Bull 150 주식관리팀
186 Julia Dellinger 150 주식관리팀
187 Anthony Cabrio 150 주식관리팀
188 Kelly Chung 150 주식관리팀
189 Jennifer Dilly 150 주식관리팀
190 Timothy Gates 150 주식관리팀
191 Randall Perkins 150 주식관리팀
192 Sarah Bell 150 주식관리팀
193 Britney Everett 150 주식관리팀
194 Samuel McCain 150 주식관리팀
195 Vance Jones 150 주식관리팀
196 Alana Walsh 150 주식관리팀
197 Kevin Feeney 150 주식관리팀
198 Donald OConnell 160 수익관리팀
199 Douglas Grant 160 수익관리팀
200 Jennifer Whalen 160 수익관리팀
201 Michael Hartstein 160 수익관리팀
202 Pat Fay 160 수익관리팀
203 Susan Mavris 160 수익관리팀
204 Hermann Baer 160 수익관리팀
205 Shelley Higgins 160 수익관리팀
206 William Gietz 160 수익관리팀
100 Steven King 160 수익관리팀
101 Neena Kochhar 160 수익관리팀
102 Lex De Haan 160 수익관리팀
103 Alexander Hunold 160 수익관리팀
104 Bruce Ernst 160 수익관리팀
105 David Austin 160 수익관리팀
106 Valli Pataballa 160 수익관리팀
107 Diana Lorentz 160 수익관리팀
108 Nancy Greenberg 160 수익관리팀
109 Daniel Faviet 160 수익관리팀
110 John Chen 160 수익관리팀
111 Ismael Sciarra 160 수익관리팀
112 Jose Manuel Urman 160 수익관리팀
113 Luis Popp 160 수익관리팀
114 Den Raphaely 160 수익관리팀
115 Alexander Khoo 160 수익관리팀
116 Shelli Baida 160 수익관리팀
117 Sigal Tobias 160 수익관리팀
118 Guy Himuro 160 수익관리팀
119 Karen Colmenares 160 수익관리팀
120 Matthew Weiss 160 수익관리팀
121 Adam Fripp 160 수익관리팀
122 Payam Kaufling 160 수익관리팀
123 Shanta Vollman 160 수익관리팀
124 Kevin Mourgos 160 수익관리팀
125 Julia Nayer 160 수익관리팀
126 Irene Mikkilineni 160 수익관리팀
127 James Landry 160 수익관리팀
128 Steven Markle 160 수익관리팀
129 Laura Bissot 160 수익관리팀
130 Mozhe Atkinson 160 수익관리팀
131 James Marlow 160 수익관리팀
132 TJ Olson 160 수익관리팀
133 Jason Mallin 160 수익관리팀
134 Michael Rogers 160 수익관리팀
135 Ki Gee 160 수익관리팀
136 Hazel Philtanker 160 수익관리팀
137 Renske Ladwig 160 수익관리팀
138 Stephen Stiles 160 수익관리팀
139 John Seo 160 수익관리팀
140 Joshua Patel 160 수익관리팀
141 Trenna Rajs 160 수익관리팀
142 Curtis Davies 160 수익관리팀
143 Randall Matos 160 수익관리팀
144 Peter Vargas 160 수익관리팀
145 John Russell 160 수익관리팀
146 Karen Partners 160 수익관리팀
147 Alberto Errazuriz 160 수익관리팀
148 Gerald Cambrault 160 수익관리팀
149 Eleni Zlotkey 160 수익관리팀
150 Peter Tucker 160 수익관리팀
151 David Bernstein 160 수익관리팀
152 Peter Hall 160 수익관리팀
153 Christopher Olsen 160 수익관리팀
154 Nanette Cambrault 160 수익관리팀
155 Oliver Tuvault 160 수익관리팀
156 Janette King 160 수익관리팀
157 Patrick Sully 160 수익관리팀
158 Allan McEwen 160 수익관리팀
159 Lindsey Smith 160 수익관리팀
160 Louise Doran 160 수익관리팀
161 Sarath Sewall 160 수익관리팀
162 Clara Vishney 160 수익관리팀
163 Danielle Greene 160 수익관리팀
164 Mattea Marvins 160 수익관리팀
165 David Lee 160 수익관리팀
166 Sundar Ande 160 수익관리팀
167 Amit Banda 160 수익관리팀
168 Lisa Ozer 160 수익관리팀
169 Harrison Bloom 160 수익관리팀
170 Tayler Fox 160 수익관리팀
171 William Smith 160 수익관리팀
172 Elizabeth Bates 160 수익관리팀
173 Sundita Kumar 160 수익관리팀
174 Ellen Abel 160 수익관리팀
175 Alyssa Hutton 160 수익관리팀
176 Jonathon Taylor 160 수익관리팀
177 Jack Livingston 160 수익관리팀
178 Kimberely Grant 160 수익관리팀
179 Charles Johnson 160 수익관리팀
180 Winston Taylor 160 수익관리팀
181 Jean Fleaur 160 수익관리팀
182 Martha Sullivan 160 수익관리팀
183 Girard Geoni 160 수익관리팀
184 Nandita Sarchand 160 수익관리팀
185 Alexis Bull 160 수익관리팀
186 Julia Dellinger 160 수익관리팀
187 Anthony Cabrio 160 수익관리팀
188 Kelly Chung 160 수익관리팀
189 Jennifer Dilly 160 수익관리팀
190 Timothy Gates 160 수익관리팀
191 Randall Perkins 160 수익관리팀
192 Sarah Bell 160 수익관리팀
193 Britney Everett 160 수익관리팀
194 Samuel McCain 160 수익관리팀
195 Vance Jones 160 수익관리팀
196 Alana Walsh 160 수익관리팀
197 Kevin Feeney 160 수익관리팀
198 Donald OConnell 170 생산팀
199 Douglas Grant 170 생산팀
200 Jennifer Whalen 170 생산팀
201 Michael Hartstein 170 생산팀
202 Pat Fay 170 생산팀
203 Susan Mavris 170 생산팀
204 Hermann Baer 170 생산팀
205 Shelley Higgins 170 생산팀
206 William Gietz 170 생산팀
100 Steven King 170 생산팀
101 Neena Kochhar 170 생산팀
102 Lex De Haan 170 생산팀
103 Alexander Hunold 170 생산팀
104 Bruce Ernst 170 생산팀
105 David Austin 170 생산팀
106 Valli Pataballa 170 생산팀
107 Diana Lorentz 170 생산팀
108 Nancy Greenberg 170 생산팀
109 Daniel Faviet 170 생산팀
110 John Chen 170 생산팀
111 Ismael Sciarra 170 생산팀
112 Jose Manuel Urman 170 생산팀
113 Luis Popp 170 생산팀
114 Den Raphaely 170 생산팀
115 Alexander Khoo 170 생산팀
116 Shelli Baida 170 생산팀
117 Sigal Tobias 170 생산팀
118 Guy Himuro 170 생산팀
119 Karen Colmenares 170 생산팀
120 Matthew Weiss 170 생산팀
121 Adam Fripp 170 생산팀
122 Payam Kaufling 170 생산팀
123 Shanta Vollman 170 생산팀
124 Kevin Mourgos 170 생산팀
125 Julia Nayer 170 생산팀
126 Irene Mikkilineni 170 생산팀
127 James Landry 170 생산팀
128 Steven Markle 170 생산팀
129 Laura Bissot 170 생산팀
130 Mozhe Atkinson 170 생산팀
131 James Marlow 170 생산팀
132 TJ Olson 170 생산팀
133 Jason Mallin 170 생산팀
134 Michael Rogers 170 생산팀
135 Ki Gee 170 생산팀
136 Hazel Philtanker 170 생산팀
137 Renske Ladwig 170 생산팀
138 Stephen Stiles 170 생산팀
139 John Seo 170 생산팀
140 Joshua Patel 170 생산팀
141 Trenna Rajs 170 생산팀
142 Curtis Davies 170 생산팀
143 Randall Matos 170 생산팀
144 Peter Vargas 170 생산팀
145 John Russell 170 생산팀
146 Karen Partners 170 생산팀
147 Alberto Errazuriz 170 생산팀
148 Gerald Cambrault 170 생산팀
149 Eleni Zlotkey 170 생산팀
150 Peter Tucker 170 생산팀
151 David Bernstein 170 생산팀
152 Peter Hall 170 생산팀
153 Christopher Olsen 170 생산팀
154 Nanette Cambrault 170 생산팀
155 Oliver Tuvault 170 생산팀
156 Janette King 170 생산팀
157 Patrick Sully 170 생산팀
158 Allan McEwen 170 생산팀
159 Lindsey Smith 170 생산팀
160 Louise Doran 170 생산팀
161 Sarath Sewall 170 생산팀
162 Clara Vishney 170 생산팀
163 Danielle Greene 170 생산팀
164 Mattea Marvins 170 생산팀
165 David Lee 170 생산팀
166 Sundar Ande 170 생산팀
167 Amit Banda 170 생산팀
168 Lisa Ozer 170 생산팀
169 Harrison Bloom 170 생산팀
170 Tayler Fox 170 생산팀
171 William Smith 170 생산팀
172 Elizabeth Bates 170 생산팀
173 Sundita Kumar 170 생산팀
174 Ellen Abel 170 생산팀
175 Alyssa Hutton 170 생산팀
176 Jonathon Taylor 170 생산팀
177 Jack Livingston 170 생산팀
178 Kimberely Grant 170 생산팀
179 Charles Johnson 170 생산팀
180 Winston Taylor 170 생산팀
181 Jean Fleaur 170 생산팀
182 Martha Sullivan 170 생산팀
183 Girard Geoni 170 생산팀
184 Nandita Sarchand 170 생산팀
185 Alexis Bull 170 생산팀
186 Julia Dellinger 170 생산팀
187 Anthony Cabrio 170 생산팀
188 Kelly Chung 170 생산팀
189 Jennifer Dilly 170 생산팀
190 Timothy Gates 170 생산팀
191 Randall Perkins 170 생산팀
192 Sarah Bell 170 생산팀
193 Britney Everett 170 생산팀
194 Samuel McCain 170 생산팀
195 Vance Jones 170 생산팀
196 Alana Walsh 170 생산팀
197 Kevin Feeney 170 생산팀
198 Donald OConnell 180 건설팀
199 Douglas Grant 180 건설팀
200 Jennifer Whalen 180 건설팀
201 Michael Hartstein 180 건설팀
202 Pat Fay 180 건설팀
203 Susan Mavris 180 건설팀
204 Hermann Baer 180 건설팀
205 Shelley Higgins 180 건설팀
206 William Gietz 180 건설팀
100 Steven King 180 건설팀
101 Neena Kochhar 180 건설팀
102 Lex De Haan 180 건설팀
103 Alexander Hunold 180 건설팀
104 Bruce Ernst 180 건설팀
105 David Austin 180 건설팀
106 Valli Pataballa 180 건설팀
107 Diana Lorentz 180 건설팀
108 Nancy Greenberg 180 건설팀
109 Daniel Faviet 180 건설팀
110 John Chen 180 건설팀
111 Ismael Sciarra 180 건설팀
112 Jose Manuel Urman 180 건설팀
113 Luis Popp 180 건설팀
114 Den Raphaely 180 건설팀
115 Alexander Khoo 180 건설팀
116 Shelli Baida 180 건설팀
117 Sigal Tobias 180 건설팀
118 Guy Himuro 180 건설팀
119 Karen Colmenares 180 건설팀
120 Matthew Weiss 180 건설팀
121 Adam Fripp 180 건설팀
122 Payam Kaufling 180 건설팀
123 Shanta Vollman 180 건설팀
124 Kevin Mourgos 180 건설팀
125 Julia Nayer 180 건설팀
126 Irene Mikkilineni 180 건설팀
127 James Landry 180 건설팀
128 Steven Markle 180 건설팀
129 Laura Bissot 180 건설팀
130 Mozhe Atkinson 180 건설팀
131 James Marlow 180 건설팀
132 TJ Olson 180 건설팀
133 Jason Mallin 180 건설팀
134 Michael Rogers 180 건설팀
135 Ki Gee 180 건설팀
136 Hazel Philtanker 180 건설팀
137 Renske Ladwig 180 건설팀
138 Stephen Stiles 180 건설팀
139 John Seo 180 건설팀
140 Joshua Patel 180 건설팀
141 Trenna Rajs 180 건설팀
142 Curtis Davies 180 건설팀
143 Randall Matos 180 건설팀
144 Peter Vargas 180 건설팀
145 John Russell 180 건설팀
146 Karen Partners 180 건설팀
147 Alberto Errazuriz 180 건설팀
148 Gerald Cambrault 180 건설팀
149 Eleni Zlotkey 180 건설팀
150 Peter Tucker 180 건설팀
151 David Bernstein 180 건설팀
152 Peter Hall 180 건설팀
153 Christopher Olsen 180 건설팀
154 Nanette Cambrault 180 건설팀
155 Oliver Tuvault 180 건설팀
156 Janette King 180 건설팀
157 Patrick Sully 180 건설팀
158 Allan McEwen 180 건설팀
159 Lindsey Smith 180 건설팀
160 Louise Doran 180 건설팀
161 Sarath Sewall 180 건설팀
162 Clara Vishney 180 건설팀
163 Danielle Greene 180 건설팀
164 Mattea Marvins 180 건설팀
165 David Lee 180 건설팀
166 Sundar Ande 180 건설팀
167 Amit Banda 180 건설팀
168 Lisa Ozer 180 건설팀
169 Harrison Bloom 180 건설팀
170 Tayler Fox 180 건설팀
171 William Smith 180 건설팀
172 Elizabeth Bates 180 건설팀
173 Sundita Kumar 180 건설팀
174 Ellen Abel 180 건설팀
175 Alyssa Hutton 180 건설팀
176 Jonathon Taylor 180 건설팀
177 Jack Livingston 180 건설팀
178 Kimberely Grant 180 건설팀
179 Charles Johnson 180 건설팀
180 Winston Taylor 180 건설팀
181 Jean Fleaur 180 건설팀
182 Martha Sullivan 180 건설팀
183 Girard Geoni 180 건설팀
184 Nandita Sarchand 180 건설팀
185 Alexis Bull 180 건설팀
186 Julia Dellinger 180 건설팀
187 Anthony Cabrio 180 건설팀
188 Kelly Chung 180 건설팀
189 Jennifer Dilly 180 건설팀
190 Timothy Gates 180 건설팀
191 Randall Perkins 180 건설팀
192 Sarah Bell 180 건설팀
193 Britney Everett 180 건설팀
194 Samuel McCain 180 건설팀
195 Vance Jones 180 건설팀
196 Alana Walsh 180 건설팀
197 Kevin Feeney 180 건설팀
198 Donald OConnell 190 계약팀
199 Douglas Grant 190 계약팀
200 Jennifer Whalen 190 계약팀
201 Michael Hartstein 190 계약팀
202 Pat Fay 190 계약팀
203 Susan Mavris 190 계약팀
204 Hermann Baer 190 계약팀
205 Shelley Higgins 190 계약팀
206 William Gietz 190 계약팀
100 Steven King 190 계약팀
101 Neena Kochhar 190 계약팀
102 Lex De Haan 190 계약팀
103 Alexander Hunold 190 계약팀
104 Bruce Ernst 190 계약팀
105 David Austin 190 계약팀
106 Valli Pataballa 190 계약팀
107 Diana Lorentz 190 계약팀
108 Nancy Greenberg 190 계약팀
109 Daniel Faviet 190 계약팀
110 John Chen 190 계약팀
111 Ismael Sciarra 190 계약팀
112 Jose Manuel Urman 190 계약팀
113 Luis Popp 190 계약팀
114 Den Raphaely 190 계약팀
115 Alexander Khoo 190 계약팀
116 Shelli Baida 190 계약팀
117 Sigal Tobias 190 계약팀
118 Guy Himuro 190 계약팀
119 Karen Colmenares 190 계약팀
120 Matthew Weiss 190 계약팀
121 Adam Fripp 190 계약팀
122 Payam Kaufling 190 계약팀
123 Shanta Vollman 190 계약팀
124 Kevin Mourgos 190 계약팀
125 Julia Nayer 190 계약팀
126 Irene Mikkilineni 190 계약팀
127 James Landry 190 계약팀
128 Steven Markle 190 계약팀
129 Laura Bissot 190 계약팀
130 Mozhe Atkinson 190 계약팀
131 James Marlow 190 계약팀
132 TJ Olson 190 계약팀
133 Jason Mallin 190 계약팀
134 Michael Rogers 190 계약팀
135 Ki Gee 190 계약팀
136 Hazel Philtanker 190 계약팀
137 Renske Ladwig 190 계약팀
138 Stephen Stiles 190 계약팀
139 John Seo 190 계약팀
140 Joshua Patel 190 계약팀
141 Trenna Rajs 190 계약팀
142 Curtis Davies 190 계약팀
143 Randall Matos 190 계약팀
144 Peter Vargas 190 계약팀
145 John Russell 190 계약팀
146 Karen Partners 190 계약팀
147 Alberto Errazuriz 190 계약팀
148 Gerald Cambrault 190 계약팀
149 Eleni Zlotkey 190 계약팀
150 Peter Tucker 190 계약팀
151 David Bernstein 190 계약팀
152 Peter Hall 190 계약팀
153 Christopher Olsen 190 계약팀
154 Nanette Cambrault 190 계약팀
155 Oliver Tuvault 190 계약팀
156 Janette King 190 계약팀
157 Patrick Sully 190 계약팀
158 Allan McEwen 190 계약팀
159 Lindsey Smith 190 계약팀
160 Louise Doran 190 계약팀
161 Sarath Sewall 190 계약팀
162 Clara Vishney 190 계약팀
163 Danielle Greene 190 계약팀
164 Mattea Marvins 190 계약팀
165 David Lee 190 계약팀
166 Sundar Ande 190 계약팀
167 Amit Banda 190 계약팀
168 Lisa Ozer 190 계약팀
169 Harrison Bloom 190 계약팀
170 Tayler Fox 190 계약팀
171 William Smith 190 계약팀
172 Elizabeth Bates 190 계약팀
173 Sundita Kumar 190 계약팀
174 Ellen Abel 190 계약팀
175 Alyssa Hutton 190 계약팀
176 Jonathon Taylor 190 계약팀
177 Jack Livingston 190 계약팀
178 Kimberely Grant 190 계약팀
179 Charles Johnson 190 계약팀
180 Winston Taylor 190 계약팀
181 Jean Fleaur 190 계약팀
182 Martha Sullivan 190 계약팀
183 Girard Geoni 190 계약팀
184 Nandita Sarchand 190 계약팀
185 Alexis Bull 190 계약팀
186 Julia Dellinger 190 계약팀
187 Anthony Cabrio 190 계약팀
188 Kelly Chung 190 계약팀
189 Jennifer Dilly 190 계약팀
190 Timothy Gates 190 계약팀
191 Randall Perkins 190 계약팀
192 Sarah Bell 190 계약팀
193 Britney Everett 190 계약팀
194 Samuel McCain 190 계약팀
195 Vance Jones 190 계약팀
196 Alana Walsh 190 계약팀
197 Kevin Feeney 190 계약팀
198 Donald OConnell 200 운영팀
199 Douglas Grant 200 운영팀
200 Jennifer Whalen 200 운영팀
201 Michael Hartstein 200 운영팀
202 Pat Fay 200 운영팀
203 Susan Mavris 200 운영팀
204 Hermann Baer 200 운영팀
205 Shelley Higgins 200 운영팀
206 William Gietz 200 운영팀
100 Steven King 200 운영팀
101 Neena Kochhar 200 운영팀
102 Lex De Haan 200 운영팀
103 Alexander Hunold 200 운영팀
104 Bruce Ernst 200 운영팀
105 David Austin 200 운영팀
106 Valli Pataballa 200 운영팀
107 Diana Lorentz 200 운영팀
108 Nancy Greenberg 200 운영팀
109 Daniel Faviet 200 운영팀
110 John Chen 200 운영팀
111 Ismael Sciarra 200 운영팀
112 Jose Manuel Urman 200 운영팀
113 Luis Popp 200 운영팀
114 Den Raphaely 200 운영팀
115 Alexander Khoo 200 운영팀
116 Shelli Baida 200 운영팀
117 Sigal Tobias 200 운영팀
118 Guy Himuro 200 운영팀
119 Karen Colmenares 200 운영팀
120 Matthew Weiss 200 운영팀
121 Adam Fripp 200 운영팀
122 Payam Kaufling 200 운영팀
123 Shanta Vollman 200 운영팀
124 Kevin Mourgos 200 운영팀
125 Julia Nayer 200 운영팀
126 Irene Mikkilineni 200 운영팀
127 James Landry 200 운영팀
128 Steven Markle 200 운영팀
129 Laura Bissot 200 운영팀
130 Mozhe Atkinson 200 운영팀
131 James Marlow 200 운영팀
132 TJ Olson 200 운영팀
133 Jason Mallin 200 운영팀
134 Michael Rogers 200 운영팀
135 Ki Gee 200 운영팀
136 Hazel Philtanker 200 운영팀
137 Renske Ladwig 200 운영팀
138 Stephen Stiles 200 운영팀
139 John Seo 200 운영팀
140 Joshua Patel 200 운영팀
141 Trenna Rajs 200 운영팀
142 Curtis Davies 200 운영팀
143 Randall Matos 200 운영팀
144 Peter Vargas 200 운영팀
145 John Russell 200 운영팀
146 Karen Partners 200 운영팀
147 Alberto Errazuriz 200 운영팀
148 Gerald Cambrault 200 운영팀
149 Eleni Zlotkey 200 운영팀
150 Peter Tucker 200 운영팀
151 David Bernstein 200 운영팀
152 Peter Hall 200 운영팀
153 Christopher Olsen 200 운영팀
154 Nanette Cambrault 200 운영팀
155 Oliver Tuvault 200 운영팀
156 Janette King 200 운영팀
157 Patrick Sully 200 운영팀
158 Allan McEwen 200 운영팀
159 Lindsey Smith 200 운영팀
160 Louise Doran 200 운영팀
161 Sarath Sewall 200 운영팀
162 Clara Vishney 200 운영팀
163 Danielle Greene 200 운영팀
164 Mattea Marvins 200 운영팀
165 David Lee 200 운영팀
166 Sundar Ande 200 운영팀
167 Amit Banda 200 운영팀
168 Lisa Ozer 200 운영팀
169 Harrison Bloom 200 운영팀
170 Tayler Fox 200 운영팀
171 William Smith 200 운영팀
172 Elizabeth Bates 200 운영팀
173 Sundita Kumar 200 운영팀
174 Ellen Abel 200 운영팀
175 Alyssa Hutton 200 운영팀
176 Jonathon Taylor 200 운영팀
177 Jack Livingston 200 운영팀
178 Kimberely Grant 200 운영팀
179 Charles Johnson 200 운영팀
180 Winston Taylor 200 운영팀
181 Jean Fleaur 200 운영팀
182 Martha Sullivan 200 운영팀
183 Girard Geoni 200 운영팀
184 Nandita Sarchand 200 운영팀
185 Alexis Bull 200 운영팀
186 Julia Dellinger 200 운영팀
187 Anthony Cabrio 200 운영팀
188 Kelly Chung 200 운영팀
189 Jennifer Dilly 200 운영팀
190 Timothy Gates 200 운영팀
191 Randall Perkins 200 운영팀
192 Sarah Bell 200 운영팀
193 Britney Everett 200 운영팀
194 Samuel McCain 200 운영팀
195 Vance Jones 200 운영팀
196 Alana Walsh 200 운영팀
197 Kevin Feeney 200 운영팀
198 Donald OConnell 210 IT 지원
199 Douglas Grant 210 IT 지원
200 Jennifer Whalen 210 IT 지원
201 Michael Hartstein 210 IT 지원
202 Pat Fay 210 IT 지원
203 Susan Mavris 210 IT 지원
204 Hermann Baer 210 IT 지원
205 Shelley Higgins 210 IT 지원
206 William Gietz 210 IT 지원
100 Steven King 210 IT 지원
101 Neena Kochhar 210 IT 지원
102 Lex De Haan 210 IT 지원
103 Alexander Hunold 210 IT 지원
104 Bruce Ernst 210 IT 지원
105 David Austin 210 IT 지원
106 Valli Pataballa 210 IT 지원
107 Diana Lorentz 210 IT 지원
108 Nancy Greenberg 210 IT 지원
109 Daniel Faviet 210 IT 지원
110 John Chen 210 IT 지원
111 Ismael Sciarra 210 IT 지원
112 Jose Manuel Urman 210 IT 지원
113 Luis Popp 210 IT 지원
114 Den Raphaely 210 IT 지원
115 Alexander Khoo 210 IT 지원
116 Shelli Baida 210 IT 지원
117 Sigal Tobias 210 IT 지원
118 Guy Himuro 210 IT 지원
119 Karen Colmenares 210 IT 지원
120 Matthew Weiss 210 IT 지원
121 Adam Fripp 210 IT 지원
122 Payam Kaufling 210 IT 지원
123 Shanta Vollman 210 IT 지원
124 Kevin Mourgos 210 IT 지원
125 Julia Nayer 210 IT 지원
126 Irene Mikkilineni 210 IT 지원
127 James Landry 210 IT 지원
128 Steven Markle 210 IT 지원
129 Laura Bissot 210 IT 지원
130 Mozhe Atkinson 210 IT 지원
131 James Marlow 210 IT 지원
132 TJ Olson 210 IT 지원
133 Jason Mallin 210 IT 지원
134 Michael Rogers 210 IT 지원
135 Ki Gee 210 IT 지원
136 Hazel Philtanker 210 IT 지원
137 Renske Ladwig 210 IT 지원
138 Stephen Stiles 210 IT 지원
139 John Seo 210 IT 지원
140 Joshua Patel 210 IT 지원
141 Trenna Rajs 210 IT 지원
142 Curtis Davies 210 IT 지원
143 Randall Matos 210 IT 지원
144 Peter Vargas 210 IT 지원
145 John Russell 210 IT 지원
146 Karen Partners 210 IT 지원
147 Alberto Errazuriz 210 IT 지원
148 Gerald Cambrault 210 IT 지원
149 Eleni Zlotkey 210 IT 지원
150 Peter Tucker 210 IT 지원
151 David Bernstein 210 IT 지원
152 Peter Hall 210 IT 지원
153 Christopher Olsen 210 IT 지원
154 Nanette Cambrault 210 IT 지원
155 Oliver Tuvault 210 IT 지원
156 Janette King 210 IT 지원
157 Patrick Sully 210 IT 지원
158 Allan McEwen 210 IT 지원
159 Lindsey Smith 210 IT 지원
160 Louise Doran 210 IT 지원
161 Sarath Sewall 210 IT 지원
162 Clara Vishney 210 IT 지원
163 Danielle Greene 210 IT 지원
164 Mattea Marvins 210 IT 지원
165 David Lee 210 IT 지원
166 Sundar Ande 210 IT 지원
167 Amit Banda 210 IT 지원
168 Lisa Ozer 210 IT 지원
169 Harrison Bloom 210 IT 지원
170 Tayler Fox 210 IT 지원
171 William Smith 210 IT 지원
172 Elizabeth Bates 210 IT 지원
173 Sundita Kumar 210 IT 지원
174 Ellen Abel 210 IT 지원
175 Alyssa Hutton 210 IT 지원
176 Jonathon Taylor 210 IT 지원
177 Jack Livingston 210 IT 지원
178 Kimberely Grant 210 IT 지원
179 Charles Johnson 210 IT 지원
180 Winston Taylor 210 IT 지원
181 Jean Fleaur 210 IT 지원
182 Martha Sullivan 210 IT 지원
183 Girard Geoni 210 IT 지원
184 Nandita Sarchand 210 IT 지원
185 Alexis Bull 210 IT 지원
186 Julia Dellinger 210 IT 지원
187 Anthony Cabrio 210 IT 지원
188 Kelly Chung 210 IT 지원
189 Jennifer Dilly 210 IT 지원
190 Timothy Gates 210 IT 지원
191 Randall Perkins 210 IT 지원
192 Sarah Bell 210 IT 지원
193 Britney Everett 210 IT 지원
194 Samuel McCain 210 IT 지원
195 Vance Jones 210 IT 지원
196 Alana Walsh 210 IT 지원
197 Kevin Feeney 210 IT 지원
198 Donald OConnell 220 NOC
199 Douglas Grant 220 NOC
200 Jennifer Whalen 220 NOC
201 Michael Hartstein 220 NOC
202 Pat Fay 220 NOC
203 Susan Mavris 220 NOC
204 Hermann Baer 220 NOC
205 Shelley Higgins 220 NOC
206 William Gietz 220 NOC
100 Steven King 220 NOC
101 Neena Kochhar 220 NOC
102 Lex De Haan 220 NOC
103 Alexander Hunold 220 NOC
104 Bruce Ernst 220 NOC
105 David Austin 220 NOC
106 Valli Pataballa 220 NOC
107 Diana Lorentz 220 NOC
108 Nancy Greenberg 220 NOC
109 Daniel Faviet 220 NOC
110 John Chen 220 NOC
111 Ismael Sciarra 220 NOC
112 Jose Manuel Urman 220 NOC
113 Luis Popp 220 NOC
114 Den Raphaely 220 NOC
115 Alexander Khoo 220 NOC
116 Shelli Baida 220 NOC
117 Sigal Tobias 220 NOC
118 Guy Himuro 220 NOC
119 Karen Colmenares 220 NOC
120 Matthew Weiss 220 NOC
121 Adam Fripp 220 NOC
122 Payam Kaufling 220 NOC
123 Shanta Vollman 220 NOC
124 Kevin Mourgos 220 NOC
125 Julia Nayer 220 NOC
126 Irene Mikkilineni 220 NOC
127 James Landry 220 NOC
128 Steven Markle 220 NOC
129 Laura Bissot 220 NOC
130 Mozhe Atkinson 220 NOC
131 James Marlow 220 NOC
132 TJ Olson 220 NOC
133 Jason Mallin 220 NOC
134 Michael Rogers 220 NOC
135 Ki Gee 220 NOC
136 Hazel Philtanker 220 NOC
137 Renske Ladwig 220 NOC
138 Stephen Stiles 220 NOC
139 John Seo 220 NOC
140 Joshua Patel 220 NOC
141 Trenna Rajs 220 NOC
142 Curtis Davies 220 NOC
143 Randall Matos 220 NOC
144 Peter Vargas 220 NOC
145 John Russell 220 NOC
146 Karen Partners 220 NOC
147 Alberto Errazuriz 220 NOC
148 Gerald Cambrault 220 NOC
149 Eleni Zlotkey 220 NOC
150 Peter Tucker 220 NOC
151 David Bernstein 220 NOC
152 Peter Hall 220 NOC
153 Christopher Olsen 220 NOC
154 Nanette Cambrault 220 NOC
155 Oliver Tuvault 220 NOC
156 Janette King 220 NOC
157 Patrick Sully 220 NOC
158 Allan McEwen 220 NOC
159 Lindsey Smith 220 NOC
160 Louise Doran 220 NOC
161 Sarath Sewall 220 NOC
162 Clara Vishney 220 NOC
163 Danielle Greene 220 NOC
164 Mattea Marvins 220 NOC
165 David Lee 220 NOC
166 Sundar Ande 220 NOC
167 Amit Banda 220 NOC
168 Lisa Ozer 220 NOC
169 Harrison Bloom 220 NOC
170 Tayler Fox 220 NOC
171 William Smith 220 NOC
172 Elizabeth Bates 220 NOC
173 Sundita Kumar 220 NOC
174 Ellen Abel 220 NOC
175 Alyssa Hutton 220 NOC
176 Jonathon Taylor 220 NOC
177 Jack Livingston 220 NOC
178 Kimberely Grant 220 NOC
179 Charles Johnson 220 NOC
180 Winston Taylor 220 NOC
181 Jean Fleaur 220 NOC
182 Martha Sullivan 220 NOC
183 Girard Geoni 220 NOC
184 Nandita Sarchand 220 NOC
185 Alexis Bull 220 NOC
186 Julia Dellinger 220 NOC
187 Anthony Cabrio 220 NOC
188 Kelly Chung 220 NOC
189 Jennifer Dilly 220 NOC
190 Timothy Gates 220 NOC
191 Randall Perkins 220 NOC
192 Sarah Bell 220 NOC
193 Britney Everett 220 NOC
194 Samuel McCain 220 NOC
195 Vance Jones 220 NOC
196 Alana Walsh 220 NOC
197 Kevin Feeney 220 NOC
198 Donald OConnell 230 IT 헬프데스크
199 Douglas Grant 230 IT 헬프데스크
200 Jennifer Whalen 230 IT 헬프데스크
201 Michael Hartstein 230 IT 헬프데스크
202 Pat Fay 230 IT 헬프데스크
203 Susan Mavris 230 IT 헬프데스크
204 Hermann Baer 230 IT 헬프데스크
205 Shelley Higgins 230 IT 헬프데스크
206 William Gietz 230 IT 헬프데스크
100 Steven King 230 IT 헬프데스크
101 Neena Kochhar 230 IT 헬프데스크
102 Lex De Haan 230 IT 헬프데스크
103 Alexander Hunold 230 IT 헬프데스크
104 Bruce Ernst 230 IT 헬프데스크
105 David Austin 230 IT 헬프데스크
106 Valli Pataballa 230 IT 헬프데스크
107 Diana Lorentz 230 IT 헬프데스크
108 Nancy Greenberg 230 IT 헬프데스크
109 Daniel Faviet 230 IT 헬프데스크
110 John Chen 230 IT 헬프데스크
111 Ismael Sciarra 230 IT 헬프데스크
112 Jose Manuel Urman 230 IT 헬프데스크
113 Luis Popp 230 IT 헬프데스크
114 Den Raphaely 230 IT 헬프데스크
115 Alexander Khoo 230 IT 헬프데스크
116 Shelli Baida 230 IT 헬프데스크
117 Sigal Tobias 230 IT 헬프데스크
118 Guy Himuro 230 IT 헬프데스크
119 Karen Colmenares 230 IT 헬프데스크
120 Matthew Weiss 230 IT 헬프데스크
121 Adam Fripp 230 IT 헬프데스크
122 Payam Kaufling 230 IT 헬프데스크
123 Shanta Vollman 230 IT 헬프데스크
124 Kevin Mourgos 230 IT 헬프데스크
125 Julia Nayer 230 IT 헬프데스크
126 Irene Mikkilineni 230 IT 헬프데스크
127 James Landry 230 IT 헬프데스크
128 Steven Markle 230 IT 헬프데스크
129 Laura Bissot 230 IT 헬프데스크
130 Mozhe Atkinson 230 IT 헬프데스크
131 James Marlow 230 IT 헬프데스크
132 TJ Olson 230 IT 헬프데스크
133 Jason Mallin 230 IT 헬프데스크
134 Michael Rogers 230 IT 헬프데스크
135 Ki Gee 230 IT 헬프데스크
136 Hazel Philtanker 230 IT 헬프데스크
137 Renske Ladwig 230 IT 헬프데스크
138 Stephen Stiles 230 IT 헬프데스크
139 John Seo 230 IT 헬프데스크
140 Joshua Patel 230 IT 헬프데스크
141 Trenna Rajs 230 IT 헬프데스크
142 Curtis Davies 230 IT 헬프데스크
143 Randall Matos 230 IT 헬프데스크
144 Peter Vargas 230 IT 헬프데스크
145 John Russell 230 IT 헬프데스크
146 Karen Partners 230 IT 헬프데스크
147 Alberto Errazuriz 230 IT 헬프데스크
148 Gerald Cambrault 230 IT 헬프데스크
149 Eleni Zlotkey 230 IT 헬프데스크
150 Peter Tucker 230 IT 헬프데스크
151 David Bernstein 230 IT 헬프데스크
152 Peter Hall 230 IT 헬프데스크
153 Christopher Olsen 230 IT 헬프데스크
154 Nanette Cambrault 230 IT 헬프데스크
155 Oliver Tuvault 230 IT 헬프데스크
156 Janette King 230 IT 헬프데스크
157 Patrick Sully 230 IT 헬프데스크
158 Allan McEwen 230 IT 헬프데스크
159 Lindsey Smith 230 IT 헬프데스크
160 Louise Doran 230 IT 헬프데스크
161 Sarath Sewall 230 IT 헬프데스크
162 Clara Vishney 230 IT 헬프데스크
163 Danielle Greene 230 IT 헬프데스크
164 Mattea Marvins 230 IT 헬프데스크
165 David Lee 230 IT 헬프데스크
166 Sundar Ande 230 IT 헬프데스크
167 Amit Banda 230 IT 헬프데스크
168 Lisa Ozer 230 IT 헬프데스크
169 Harrison Bloom 230 IT 헬프데스크
170 Tayler Fox 230 IT 헬프데스크
171 William Smith 230 IT 헬프데스크
172 Elizabeth Bates 230 IT 헬프데스크
173 Sundita Kumar 230 IT 헬프데스크
174 Ellen Abel 230 IT 헬프데스크
175 Alyssa Hutton 230 IT 헬프데스크
176 Jonathon Taylor 230 IT 헬프데스크
177 Jack Livingston 230 IT 헬프데스크
178 Kimberely Grant 230 IT 헬프데스크
179 Charles Johnson 230 IT 헬프데스크
180 Winston Taylor 230 IT 헬프데스크
181 Jean Fleaur 230 IT 헬프데스크
182 Martha Sullivan 230 IT 헬프데스크
183 Girard Geoni 230 IT 헬프데스크
184 Nandita Sarchand 230 IT 헬프데스크
185 Alexis Bull 230 IT 헬프데스크
186 Julia Dellinger 230 IT 헬프데스크
187 Anthony Cabrio 230 IT 헬프데스크
188 Kelly Chung 230 IT 헬프데스크
189 Jennifer Dilly 230 IT 헬프데스크
190 Timothy Gates 230 IT 헬프데스크
191 Randall Perkins 230 IT 헬프데스크
192 Sarah Bell 230 IT 헬프데스크
193 Britney Everett 230 IT 헬프데스크
194 Samuel McCain 230 IT 헬프데스크
195 Vance Jones 230 IT 헬프데스크
196 Alana Walsh 230 IT 헬프데스크
197 Kevin Feeney 230 IT 헬프데스크
198 Donald OConnell 240 공공 판매사업팀
199 Douglas Grant 240 공공 판매사업팀
200 Jennifer Whalen 240 공공 판매사업팀
201 Michael Hartstein 240 공공 판매사업팀
202 Pat Fay 240 공공 판매사업팀
203 Susan Mavris 240 공공 판매사업팀
204 Hermann Baer 240 공공 판매사업팀
205 Shelley Higgins 240 공공 판매사업팀
206 William Gietz 240 공공 판매사업팀
100 Steven King 240 공공 판매사업팀
101 Neena Kochhar 240 공공 판매사업팀
102 Lex De Haan 240 공공 판매사업팀
103 Alexander Hunold 240 공공 판매사업팀
104 Bruce Ernst 240 공공 판매사업팀
105 David Austin 240 공공 판매사업팀
106 Valli Pataballa 240 공공 판매사업팀
107 Diana Lorentz 240 공공 판매사업팀
108 Nancy Greenberg 240 공공 판매사업팀
109 Daniel Faviet 240 공공 판매사업팀
110 John Chen 240 공공 판매사업팀
111 Ismael Sciarra 240 공공 판매사업팀
112 Jose Manuel Urman 240 공공 판매사업팀
113 Luis Popp 240 공공 판매사업팀
114 Den Raphaely 240 공공 판매사업팀
115 Alexander Khoo 240 공공 판매사업팀
116 Shelli Baida 240 공공 판매사업팀
117 Sigal Tobias 240 공공 판매사업팀
118 Guy Himuro 240 공공 판매사업팀
119 Karen Colmenares 240 공공 판매사업팀
120 Matthew Weiss 240 공공 판매사업팀
121 Adam Fripp 240 공공 판매사업팀
122 Payam Kaufling 240 공공 판매사업팀
123 Shanta Vollman 240 공공 판매사업팀
124 Kevin Mourgos 240 공공 판매사업팀
125 Julia Nayer 240 공공 판매사업팀
126 Irene Mikkilineni 240 공공 판매사업팀
127 James Landry 240 공공 판매사업팀
128 Steven Markle 240 공공 판매사업팀
129 Laura Bissot 240 공공 판매사업팀
130 Mozhe Atkinson 240 공공 판매사업팀
131 James Marlow 240 공공 판매사업팀
132 TJ Olson 240 공공 판매사업팀
133 Jason Mallin 240 공공 판매사업팀
134 Michael Rogers 240 공공 판매사업팀
135 Ki Gee 240 공공 판매사업팀
136 Hazel Philtanker 240 공공 판매사업팀
137 Renske Ladwig 240 공공 판매사업팀
138 Stephen Stiles 240 공공 판매사업팀
139 John Seo 240 공공 판매사업팀
140 Joshua Patel 240 공공 판매사업팀
141 Trenna Rajs 240 공공 판매사업팀
142 Curtis Davies 240 공공 판매사업팀
143 Randall Matos 240 공공 판매사업팀
144 Peter Vargas 240 공공 판매사업팀
145 John Russell 240 공공 판매사업팀
146 Karen Partners 240 공공 판매사업팀
147 Alberto Errazuriz 240 공공 판매사업팀
148 Gerald Cambrault 240 공공 판매사업팀
149 Eleni Zlotkey 240 공공 판매사업팀
150 Peter Tucker 240 공공 판매사업팀
151 David Bernstein 240 공공 판매사업팀
152 Peter Hall 240 공공 판매사업팀
153 Christopher Olsen 240 공공 판매사업팀
154 Nanette Cambrault 240 공공 판매사업팀
155 Oliver Tuvault 240 공공 판매사업팀
156 Janette King 240 공공 판매사업팀
157 Patrick Sully 240 공공 판매사업팀
158 Allan McEwen 240 공공 판매사업팀
159 Lindsey Smith 240 공공 판매사업팀
160 Louise Doran 240 공공 판매사업팀
161 Sarath Sewall 240 공공 판매사업팀
162 Clara Vishney 240 공공 판매사업팀
163 Danielle Greene 240 공공 판매사업팀
164 Mattea Marvins 240 공공 판매사업팀
165 David Lee 240 공공 판매사업팀
166 Sundar Ande 240 공공 판매사업팀
167 Amit Banda 240 공공 판매사업팀
168 Lisa Ozer 240 공공 판매사업팀
169 Harrison Bloom 240 공공 판매사업팀
170 Tayler Fox 240 공공 판매사업팀
171 William Smith 240 공공 판매사업팀
172 Elizabeth Bates 240 공공 판매사업팀
173 Sundita Kumar 240 공공 판매사업팀
174 Ellen Abel 240 공공 판매사업팀
175 Alyssa Hutton 240 공공 판매사업팀
176 Jonathon Taylor 240 공공 판매사업팀
177 Jack Livingston 240 공공 판매사업팀
178 Kimberely Grant 240 공공 판매사업팀
179 Charles Johnson 240 공공 판매사업팀
180 Winston Taylor 240 공공 판매사업팀
181 Jean Fleaur 240 공공 판매사업팀
182 Martha Sullivan 240 공공 판매사업팀
183 Girard Geoni 240 공공 판매사업팀
184 Nandita Sarchand 240 공공 판매사업팀
185 Alexis Bull 240 공공 판매사업팀
186 Julia Dellinger 240 공공 판매사업팀
187 Anthony Cabrio 240 공공 판매사업팀
188 Kelly Chung 240 공공 판매사업팀
189 Jennifer Dilly 240 공공 판매사업팀
190 Timothy Gates 240 공공 판매사업팀
191 Randall Perkins 240 공공 판매사업팀
192 Sarah Bell 240 공공 판매사업팀
193 Britney Everett 240 공공 판매사업팀
194 Samuel McCain 240 공공 판매사업팀
195 Vance Jones 240 공공 판매사업팀
196 Alana Walsh 240 공공 판매사업팀
197 Kevin Feeney 240 공공 판매사업팀
198 Donald OConnell 250 판매팀
199 Douglas Grant 250 판매팀
200 Jennifer Whalen 250 판매팀
201 Michael Hartstein 250 판매팀
202 Pat Fay 250 판매팀
203 Susan Mavris 250 판매팀
204 Hermann Baer 250 판매팀
205 Shelley Higgins 250 판매팀
206 William Gietz 250 판매팀
100 Steven King 250 판매팀
101 Neena Kochhar 250 판매팀
102 Lex De Haan 250 판매팀
103 Alexander Hunold 250 판매팀
104 Bruce Ernst 250 판매팀
105 David Austin 250 판매팀
106 Valli Pataballa 250 판매팀
107 Diana Lorentz 250 판매팀
108 Nancy Greenberg 250 판매팀
109 Daniel Faviet 250 판매팀
110 John Chen 250 판매팀
111 Ismael Sciarra 250 판매팀
112 Jose Manuel Urman 250 판매팀
113 Luis Popp 250 판매팀
114 Den Raphaely 250 판매팀
115 Alexander Khoo 250 판매팀
116 Shelli Baida 250 판매팀
117 Sigal Tobias 250 판매팀
118 Guy Himuro 250 판매팀
119 Karen Colmenares 250 판매팀
120 Matthew Weiss 250 판매팀
121 Adam Fripp 250 판매팀
122 Payam Kaufling 250 판매팀
123 Shanta Vollman 250 판매팀
124 Kevin Mourgos 250 판매팀
125 Julia Nayer 250 판매팀
126 Irene Mikkilineni 250 판매팀
127 James Landry 250 판매팀
128 Steven Markle 250 판매팀
129 Laura Bissot 250 판매팀
130 Mozhe Atkinson 250 판매팀
131 James Marlow 250 판매팀
132 TJ Olson 250 판매팀
133 Jason Mallin 250 판매팀
134 Michael Rogers 250 판매팀
135 Ki Gee 250 판매팀
136 Hazel Philtanker 250 판매팀
137 Renske Ladwig 250 판매팀
138 Stephen Stiles 250 판매팀
139 John Seo 250 판매팀
140 Joshua Patel 250 판매팀
141 Trenna Rajs 250 판매팀
142 Curtis Davies 250 판매팀
143 Randall Matos 250 판매팀
144 Peter Vargas 250 판매팀
145 John Russell 250 판매팀
146 Karen Partners 250 판매팀
147 Alberto Errazuriz 250 판매팀
148 Gerald Cambrault 250 판매팀
149 Eleni Zlotkey 250 판매팀
150 Peter Tucker 250 판매팀
151 David Bernstein 250 판매팀
152 Peter Hall 250 판매팀
153 Christopher Olsen 250 판매팀
154 Nanette Cambrault 250 판매팀
155 Oliver Tuvault 250 판매팀
156 Janette King 250 판매팀
157 Patrick Sully 250 판매팀
158 Allan McEwen 250 판매팀
159 Lindsey Smith 250 판매팀
160 Louise Doran 250 판매팀
161 Sarath Sewall 250 판매팀
162 Clara Vishney 250 판매팀
163 Danielle Greene 250 판매팀
164 Mattea Marvins 250 판매팀
165 David Lee 250 판매팀
166 Sundar Ande 250 판매팀
167 Amit Banda 250 판매팀
168 Lisa Ozer 250 판매팀
169 Harrison Bloom 250 판매팀
170 Tayler Fox 250 판매팀
171 William Smith 250 판매팀
172 Elizabeth Bates 250 판매팀
173 Sundita Kumar 250 판매팀
174 Ellen Abel 250 판매팀
175 Alyssa Hutton 250 판매팀
176 Jonathon Taylor 250 판매팀
177 Jack Livingston 250 판매팀
178 Kimberely Grant 250 판매팀
179 Charles Johnson 250 판매팀
180 Winston Taylor 250 판매팀
181 Jean Fleaur 250 판매팀
182 Martha Sullivan 250 판매팀
183 Girard Geoni 250 판매팀
184 Nandita Sarchand 250 판매팀
185 Alexis Bull 250 판매팀
186 Julia Dellinger 250 판매팀
187 Anthony Cabrio 250 판매팀
188 Kelly Chung 250 판매팀
189 Jennifer Dilly 250 판매팀
190 Timothy Gates 250 판매팀
191 Randall Perkins 250 판매팀
192 Sarah Bell 250 판매팀
193 Britney Everett 250 판매팀
194 Samuel McCain 250 판매팀
195 Vance Jones 250 판매팀
196 Alana Walsh 250 판매팀
197 Kevin Feeney 250 판매팀
198 Donald OConnell 260 채용팀
199 Douglas Grant 260 채용팀
200 Jennifer Whalen 260 채용팀
201 Michael Hartstein 260 채용팀
202 Pat Fay 260 채용팀
203 Susan Mavris 260 채용팀
204 Hermann Baer 260 채용팀
205 Shelley Higgins 260 채용팀
206 William Gietz 260 채용팀
100 Steven King 260 채용팀
101 Neena Kochhar 260 채용팀
102 Lex De Haan 260 채용팀
103 Alexander Hunold 260 채용팀
104 Bruce Ernst 260 채용팀
105 David Austin 260 채용팀
106 Valli Pataballa 260 채용팀
107 Diana Lorentz 260 채용팀
108 Nancy Greenberg 260 채용팀
109 Daniel Faviet 260 채용팀
110 John Chen 260 채용팀
111 Ismael Sciarra 260 채용팀
112 Jose Manuel Urman 260 채용팀
113 Luis Popp 260 채용팀
114 Den Raphaely 260 채용팀
115 Alexander Khoo 260 채용팀
116 Shelli Baida 260 채용팀
117 Sigal Tobias 260 채용팀
118 Guy Himuro 260 채용팀
119 Karen Colmenares 260 채용팀
120 Matthew Weiss 260 채용팀
121 Adam Fripp 260 채용팀
122 Payam Kaufling 260 채용팀
123 Shanta Vollman 260 채용팀
124 Kevin Mourgos 260 채용팀
125 Julia Nayer 260 채용팀
126 Irene Mikkilineni 260 채용팀
127 James Landry 260 채용팀
128 Steven Markle 260 채용팀
129 Laura Bissot 260 채용팀
130 Mozhe Atkinson 260 채용팀
131 James Marlow 260 채용팀
132 TJ Olson 260 채용팀
133 Jason Mallin 260 채용팀
134 Michael Rogers 260 채용팀
135 Ki Gee 260 채용팀
136 Hazel Philtanker 260 채용팀
137 Renske Ladwig 260 채용팀
138 Stephen Stiles 260 채용팀
139 John Seo 260 채용팀
140 Joshua Patel 260 채용팀
141 Trenna Rajs 260 채용팀
142 Curtis Davies 260 채용팀
143 Randall Matos 260 채용팀
144 Peter Vargas 260 채용팀
145 John Russell 260 채용팀
146 Karen Partners 260 채용팀
147 Alberto Errazuriz 260 채용팀
148 Gerald Cambrault 260 채용팀
149 Eleni Zlotkey 260 채용팀
150 Peter Tucker 260 채용팀
151 David Bernstein 260 채용팀
152 Peter Hall 260 채용팀
153 Christopher Olsen 260 채용팀
154 Nanette Cambrault 260 채용팀
155 Oliver Tuvault 260 채용팀
156 Janette King 260 채용팀
157 Patrick Sully 260 채용팀
158 Allan McEwen 260 채용팀
159 Lindsey Smith 260 채용팀
160 Louise Doran 260 채용팀
161 Sarath Sewall 260 채용팀
162 Clara Vishney 260 채용팀
163 Danielle Greene 260 채용팀
164 Mattea Marvins 260 채용팀
165 David Lee 260 채용팀
166 Sundar Ande 260 채용팀
167 Amit Banda 260 채용팀
168 Lisa Ozer 260 채용팀
169 Harrison Bloom 260 채용팀
170 Tayler Fox 260 채용팀
171 William Smith 260 채용팀
172 Elizabeth Bates 260 채용팀
173 Sundita Kumar 260 채용팀
174 Ellen Abel 260 채용팀
175 Alyssa Hutton 260 채용팀
176 Jonathon Taylor 260 채용팀
177 Jack Livingston 260 채용팀
178 Kimberely Grant 260 채용팀
179 Charles Johnson 260 채용팀
180 Winston Taylor 260 채용팀
181 Jean Fleaur 260 채용팀
182 Martha Sullivan 260 채용팀
183 Girard Geoni 260 채용팀
184 Nandita Sarchand 260 채용팀
185 Alexis Bull 260 채용팀
186 Julia Dellinger 260 채용팀
187 Anthony Cabrio 260 채용팀
188 Kelly Chung 260 채용팀
189 Jennifer Dilly 260 채용팀
190 Timothy Gates 260 채용팀
191 Randall Perkins 260 채용팀
192 Sarah Bell 260 채용팀
193 Britney Everett 260 채용팀
194 Samuel McCain 260 채용팀
195 Vance Jones 260 채용팀
196 Alana Walsh 260 채용팀
197 Kevin Feeney 260 채용팀
198 Donald OConnell 270 급여팀
199 Douglas Grant 270 급여팀
200 Jennifer Whalen 270 급여팀
201 Michael Hartstein 270 급여팀
202 Pat Fay 270 급여팀
203 Susan Mavris 270 급여팀
204 Hermann Baer 270 급여팀
205 Shelley Higgins 270 급여팀
206 William Gietz 270 급여팀
100 Steven King 270 급여팀
101 Neena Kochhar 270 급여팀
102 Lex De Haan 270 급여팀
103 Alexander Hunold 270 급여팀
104 Bruce Ernst 270 급여팀
105 David Austin 270 급여팀
106 Valli Pataballa 270 급여팀
107 Diana Lorentz 270 급여팀
108 Nancy Greenberg 270 급여팀
109 Daniel Faviet 270 급여팀
110 John Chen 270 급여팀
111 Ismael Sciarra 270 급여팀
112 Jose Manuel Urman 270 급여팀
113 Luis Popp 270 급여팀
114 Den Raphaely 270 급여팀
115 Alexander Khoo 270 급여팀
116 Shelli Baida 270 급여팀
117 Sigal Tobias 270 급여팀
118 Guy Himuro 270 급여팀
119 Karen Colmenares 270 급여팀
120 Matthew Weiss 270 급여팀
121 Adam Fripp 270 급여팀
122 Payam Kaufling 270 급여팀
123 Shanta Vollman 270 급여팀
124 Kevin Mourgos 270 급여팀
125 Julia Nayer 270 급여팀
126 Irene Mikkilineni 270 급여팀
127 James Landry 270 급여팀
128 Steven Markle 270 급여팀
129 Laura Bissot 270 급여팀
130 Mozhe Atkinson 270 급여팀
131 James Marlow 270 급여팀
132 TJ Olson 270 급여팀
133 Jason Mallin 270 급여팀
134 Michael Rogers 270 급여팀
135 Ki Gee 270 급여팀
136 Hazel Philtanker 270 급여팀
137 Renske Ladwig 270 급여팀
138 Stephen Stiles 270 급여팀
139 John Seo 270 급여팀
140 Joshua Patel 270 급여팀
141 Trenna Rajs 270 급여팀
142 Curtis Davies 270 급여팀
143 Randall Matos 270 급여팀
144 Peter Vargas 270 급여팀
145 John Russell 270 급여팀
146 Karen Partners 270 급여팀
147 Alberto Errazuriz 270 급여팀
148 Gerald Cambrault 270 급여팀
149 Eleni Zlotkey 270 급여팀
150 Peter Tucker 270 급여팀
151 David Bernstein 270 급여팀
152 Peter Hall 270 급여팀
153 Christopher Olsen 270 급여팀
154 Nanette Cambrault 270 급여팀
155 Oliver Tuvault 270 급여팀
156 Janette King 270 급여팀
157 Patrick Sully 270 급여팀
158 Allan McEwen 270 급여팀
159 Lindsey Smith 270 급여팀
160 Louise Doran 270 급여팀
161 Sarath Sewall 270 급여팀
162 Clara Vishney 270 급여팀
163 Danielle Greene 270 급여팀
164 Mattea Marvins 270 급여팀
165 David Lee 270 급여팀
166 Sundar Ande 270 급여팀
167 Amit Banda 270 급여팀
168 Lisa Ozer 270 급여팀
169 Harrison Bloom 270 급여팀
170 Tayler Fox 270 급여팀
171 William Smith 270 급여팀
172 Elizabeth Bates 270 급여팀
173 Sundita Kumar 270 급여팀
174 Ellen Abel 270 급여팀
175 Alyssa Hutton 270 급여팀
176 Jonathon Taylor 270 급여팀
177 Jack Livingston 270 급여팀
178 Kimberely Grant 270 급여팀
179 Charles Johnson 270 급여팀
180 Winston Taylor 270 급여팀
181 Jean Fleaur 270 급여팀
182 Martha Sullivan 270 급여팀
183 Girard Geoni 270 급여팀
184 Nandita Sarchand 270 급여팀
185 Alexis Bull 270 급여팀
186 Julia Dellinger 270 급여팀
187 Anthony Cabrio 270 급여팀
188 Kelly Chung 270 급여팀
189 Jennifer Dilly 270 급여팀
190 Timothy Gates 270 급여팀
191 Randall Perkins 270 급여팀
192 Sarah Bell 270 급여팀
193 Britney Everett 270 급여팀
194 Samuel McCain 270 급여팀
195 Vance Jones 270 급여팀
196 Alana Walsh 270 급여팀
197 Kevin Feeney 270 급여팀
1
2
- FULL OUTER 조인
- 외부 조인의 하나이다

서브쿼리

  • sql 문장 안에서 보조로 사용되는 또 다른 SELECT 문을의미
  • 구조 : (1) 메인 쿼리 / (2) 서브 쿼리

SELECT (SELECT (서브쿼리)
FROM WHERE GROUP BY HAVING ORDER BY
)
FROM (SELECT FROM WHERE GROUP BY HAVIGN ORDER BY))
WHERE (SELECT FROM WHERE GROUP BY HAVING ORDER BY))
GROUP BY
HAVING- 연관성 없는 서브 쿼리- 메인쿼리 : 모든 사원 테이블을 조회

  • 서브쿼리 : 조건 - 사원테이블의 평균 급여보다 많은 사원
  • 결괏값은 51개
1
2
3
4
5
%%sql

SELECT *
FROM employees
WHERE salary >= (SELECT AVG(salary) FROM employees)
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name email phone_number hire_date salary manager_id commission_pct retire_date department_id job_id create_date update_date
201 Michael Hartstein MHARTSTE 515.123.5555 2004-02-17 00:00:00 13000 100 None None 20 MK_MAN 2014-01-08 13:44:45 2014-01-08 13:44:45
203 Susan Mavris SMAVRIS 515.123.7777 2002-06-07 00:00:00 6500 101 None None 40 HR_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
204 Hermann Baer HBAER 515.123.8888 2002-06-07 00:00:00 10000 101 None None 70 PR_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
205 Shelley Higgins SHIGGINS 515.123.8080 2002-06-07 00:00:00 12008 101 None None 110 AC_MGR 2014-01-08 13:44:45 2014-01-08 13:44:45
206 William Gietz WGIETZ 515.123.8181 2002-06-07 00:00:00 8300 205 None None 110 AC_ACCOUNT 2014-01-08 13:44:45 2014-01-08 13:44:45
100 Steven King SKING 515.123.4567 2003-06-17 00:00:00 24000 None None None 90 AD_PRES 2014-01-08 13:44:45 2014-01-08 13:44:45
101 Neena Kochhar NKOCHHAR 515.123.4568 2005-09-21 00:00:00 17000 100 None None 90 AD_VP 2014-01-08 13:44:45 2014-01-08 13:44:45
102 Lex De Haan LDEHAAN 515.123.4569 2001-01-13 00:00:00 17000 100 None None 90 AD_VP 2014-01-08 13:44:45 2014-01-08 13:44:45
103 Alexander Hunold AHUNOLD 590.423.4567 2006-01-03 00:00:00 9000 102 None None 60 IT_PROG 2014-01-08 13:44:45 2014-01-08 13:44:45
108 Nancy Greenberg NGREENBE 515.124.4569 2002-08-17 00:00:00 12008 101 None None 100 FI_MGR 2014-01-08 13:44:45 2014-01-08 13:44:45
109 Daniel Faviet DFAVIET 515.124.4169 2002-08-16 00:00:00 9000 108 None None 100 FI_ACCOUNT 2014-01-08 13:44:45 2014-01-08 13:44:45
110 John Chen JCHEN 515.124.4269 2005-09-28 00:00:00 8200 108 None None 100 FI_ACCOUNT 2014-01-08 13:44:45 2014-01-08 13:44:45
111 Ismael Sciarra ISCIARRA 515.124.4369 2005-09-30 00:00:00 7700 108 None None 100 FI_ACCOUNT 2014-01-08 13:44:45 2014-01-08 13:44:45
112 Jose Manuel Urman JMURMAN 515.124.4469 2006-03-07 00:00:00 7800 108 None None 100 FI_ACCOUNT 2014-01-08 13:44:45 2014-01-08 13:44:45
113 Luis Popp LPOPP 515.124.4567 2007-12-07 00:00:00 6900 108 None None 100 FI_ACCOUNT 2014-01-08 13:44:45 2014-01-08 13:44:45
114 Den Raphaely DRAPHEAL 515.127.4561 2002-12-07 00:00:00 11000 100 None None 30 PU_MAN 2014-01-08 13:44:45 2014-01-08 13:44:45
120 Matthew Weiss MWEISS 650.123.1234 2004-07-18 00:00:00 8000 100 None None 50 ST_MAN 2014-01-08 13:44:45 2014-01-08 13:44:45
121 Adam Fripp AFRIPP 650.123.2234 2005-04-10 00:00:00 8200 100 None None 50 ST_MAN 2014-01-08 13:44:45 2014-01-08 13:44:45
122 Payam Kaufling PKAUFLIN 650.123.3234 2003-05-01 00:00:00 7900 100 None None 50 ST_MAN 2014-01-08 13:44:45 2014-01-08 13:44:45
123 Shanta Vollman SVOLLMAN 650.123.4234 2005-10-10 00:00:00 6500 100 None None 50 ST_MAN 2014-01-08 13:44:45 2014-01-08 13:44:45
145 John Russell JRUSSEL 011.44.1344.429268 1998-10-01 00:00:00 14000 100 0.4 None 80 SA_MAN 2014-01-08 13:44:45 2014-01-08 13:44:45
146 Karen Partners KPARTNER 011.44.1344.467268 1999-01-05 00:00:00 13500 100 0.3 None 80 SA_MAN 2014-01-08 13:44:45 2014-01-08 13:44:45
147 Alberto Errazuriz AERRAZUR 011.44.1344.429278 1999-03-10 00:00:00 12000 100 0.3 None 80 SA_MAN 2014-01-08 13:44:45 2014-01-08 13:44:45
148 Gerald Cambrault GCAMBRAU 011.44.1344.619268 2000-10-15 00:00:00 11000 100 0.3 None 80 SA_MAN 2014-01-08 13:44:45 2014-01-08 13:44:45
149 Eleni Zlotkey EZLOTKEY 011.44.1344.429018 2001-01-29 00:00:00 10500 100 0.2 None 80 SA_MAN 2014-01-08 13:44:45 2014-01-08 13:44:45
150 Peter Tucker PTUCKER 011.44.1344.129268 1999-01-30 00:00:00 10000 145 0.3 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
151 David Bernstein DBERNSTE 011.44.1344.345268 1999-10-24 00:00:00 9500 145 0.25 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
152 Peter Hall PHALL 011.44.1344.478968 1999-08-20 00:00:00 9000 145 0.25 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
153 Christopher Olsen COLSEN 011.44.1344.498718 2000-08-30 00:00:00 8000 145 0.2 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
154 Nanette Cambrault NCAMBRAU 011.44.1344.987668 2000-12-09 00:00:00 7500 145 0.2 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
155 Oliver Tuvault OTUVAULT 011.44.1344.486508 2000-11-23 00:00:00 7000 145 0.15 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
156 Janette King JKING 011.44.1345.429268 1998-01-30 00:00:00 10000 146 0.35 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
157 Patrick Sully PSULLY 011.44.1345.929268 1998-03-04 00:00:00 9500 146 0.35 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
158 Allan McEwen AMCEWEN 011.44.1345.829268 1998-08-01 00:00:00 9000 146 0.35 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
159 Lindsey Smith LSMITH 011.44.1345.729268 1999-05-11 00:00:00 8000 146 0.3 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
160 Louise Doran LDORAN 011.44.1345.629268 1999-12-15 00:00:00 7500 146 0.3 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
161 Sarath Sewall SSEWALL 011.44.1345.529268 2000-11-03 00:00:00 7000 146 0.25 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
162 Clara Vishney CVISHNEY 011.44.1346.129268 1999-11-11 00:00:00 10500 147 0.25 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
163 Danielle Greene DGREENE 011.44.1346.229268 2000-03-19 00:00:00 9500 147 0.15 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
164 Mattea Marvins MMARVINS 011.44.1346.329268 2001-05-24 00:00:00 7200 147 0.1 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
165 David Lee DLEE 011.44.1346.529268 2001-02-23 00:00:00 6800 147 0.1 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
168 Lisa Ozer LOZER 011.44.1343.929268 1999-07-11 00:00:00 11500 148 0.25 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
169 Harrison Bloom HBLOOM 011.44.1343.829268 2000-07-23 00:00:00 10000 148 0.2 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
170 Tayler Fox TFOX 011.44.1343.729268 2000-01-24 00:00:00 9600 148 0.2 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
171 William Smith WSMITH 011.44.1343.629268 2000-02-23 00:00:00 7400 148 0.15 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
172 Elizabeth Bates EBATES 011.44.1343.529268 2000-06-24 00:00:00 7300 148 0.15 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
174 Ellen Abel EABEL 011.44.1644.429267 1998-05-11 00:00:00 11000 149 0.3 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
175 Alyssa Hutton AHUTTON 011.44.1644.429266 1999-09-19 00:00:00 8800 149 0.25 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
176 Jonathon Taylor JTAYLOR 011.44.1644.429265 2000-05-24 00:00:00 8600 149 0.2 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
177 Jack Livingston JLIVINGS 011.44.1644.429264 2000-04-23 00:00:00 8400 149 0.2 None 80 SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
178 Kimberely Grant KGRANT 011.44.1644.429263 2007-05-24 00:00:00 7000 149 0.15 None None SA_REP 2014-01-08 13:44:45 2014-01-08 13:44:45
  • parent_id가 NULL인 부서번호를 가진 총 사원의 건수
1
2
3
4
5
6
7
%%sql

SELECT count(*)
FROM employees
WHERE department_id IN (SELECT department_id
FROM departments
WHERE parent_id IS NULL)
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
COUNT(*)
1
1
2
3
4
5
6
7
8
9
10
11
%%sql

SELECT
employee_id
, emp_name
, job_id
FROM employees
WHERE (employee_id, job_id) IN (SELECT
employee_id
, job_id
FROM job_history)
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name job_id
200 Jennifer Whalen AD_ASST
176 Jonathon Taylor SA_REP
  • 연관성 있는 서브 쿼리
1
2
3
4
5
6
7
8
9
10
%%sql

SELECT
a.department_id
, a.department_name
FROM departments a
WHERE EXISTS (SELECT 1
FROM job_history b
WHERE a.department_id = b.department_id
)
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id department_name
20 마케팅
50 배송부
60 IT
80 영업부
90 기획부
110 경리부
  • SELECT 절에 서브쿼리가 존재하는 케이스
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
%%sql

SELECT
a.employee_id
, (SELECT b.emp_name
FROM employees b
WHERE a.employee_id = b.employee_id) AS emp_name
, department_id
, (SELECT b.department_name
FROM departments b
WHERE a.department_id = b.department_id) AS dep_name
, (SELECT c.job_title
FROM jobs c
WHERE a.job_id = c.job_id) AS title_name
FROM job_history a
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
employee_id emp_name department_id dep_name title_name
102 Lex De Haan 60 IT Programmer
101 Neena Kochhar 110 경리부 Public Accountant
101 Neena Kochhar 110 경리부 Accounting Manager
201 Michael Hartstein 20 마케팅 Marketing Representative
114 Den Raphaely 50 배송부 Stock Clerk
122 Payam Kaufling 50 배송부 Stock Clerk
200 Jennifer Whalen 90 기획부 Administration Assistant
176 Jonathon Taylor 80 영업부 Sales Representative
176 Jonathon Taylor 80 영업부 Sales Manager
200 Jennifer Whalen 90 기획부 Public Accountant
  • 중첩 서브쿼리
1
2
3
4
5
6
7
8
9
10
11
12
%%sql

SELECT
a.department_id
, a.department_name
FROM
departments a
WHERE EXISTS( SELECT 1
FROM employees b
WHERE a.department_id = b.department_id
AND b.salary > (SELECT AVG(salary) FROM employees)
)
 * oracle://ora_user:***@127.0.0.1:1521/myoracle
0 rows affected.
department_id department_name
20 마케팅
30 구매/생산부
40 인사부
50 배송부
60 IT
70 홍보부
80 영업부
90 기획부
100 자금부
110 경리부
  • Reference : 오라클 SQL과 PL/SQL을 다루는 기술