나의 생각을 끄적이는 공간

블로그 이미지

Wooni0477

카테고리

  • 분류 전체보기 (118)
    • 프로그래밍 정리 (102)
      • Front (5)
      • Java (2)
      • JSP, Servlet, DB(oracle) (33)
      • JavaScript (0)
      • Spring (22)
      • Oracle (28)
      • Vue (1)
      • API (1)
      • err (5)
      • ERD (1)
      • etc.. (4)
    • BoostCourse (15)
      • HTML/CSS (7)
      • JavaScript (4)
      • JSP (4)
    • 공부 자료들.. (0)
    • 기타 (0)
    • --------------------------- (0)
    • 끄적이는공간.. (0)
      • 이벤트 (0)
      • 여행 (0)

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

Oracle 기본정리 - sub query1(where절에 select 넣어보기)

프로그래밍 정리/Oracle 2019. 12. 4. 12:55
반응형

Oracle 기본정리 - where절에 select 넣어보기



-hr 계정의 테이블 사용



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
109
110
--우리회사의 평균 급여 이상을 받는 사원의 사원번호, 성, 급여를 출력 (급여는 많이 받는 사람순으로)
 
    select employee_id,last_name,salary
    from employees
    where salary >= (select avg(salary)
                  from employees e2)
    order by salary desc;
 
 
 
--성(lastname)에 u문자가 포함된 사원과 같은 부서에서 근무하는 사원의 사원번호, 성을 출력
 
    select * from employees;
    select employee_id, last_name, department_id
    from employees
    where department_id in (select department_id
                           from employees
                           where last_name like '%u%')
    order by department_id asc;
 
 
 
--king에게 보고하는 사원의 사원코드와 성, 급여를 출력
 
    --방법1
    select * from employees order by manager_id;
    select e1.employee_id, e1.last_name, e1.salary
    from employees e1, employees e2
    where e1.manager_id = e2.employee_id
    and upper(e2.last_name) = 'KING'
    and upper(e2.first_name) = 'STEVEN';
 
    --방법2
    select employee_id, last_name, salary
    from employees
    where manager_id in (select employee_id
                        from employees
                        where upper(last_name) = 'KING'
                        and upper(first_name) = 'STEVEN');
 
 
--부서 60의 사원들보다 급여가 많이 받는 사원들의 성, 부서명, 급여를 출력
 
    --방법1
 
    select e.last_name, d.department_name, e.salary
    from employees e inner join departments d
    on e.department_id = d.department_id
    where e.salary > (select max(salary)
                    from employees
                    where department_id=60);
    --방법2
    select e.last_name, d.department_name, e.salary
    from employees e inner join departments d
    on e.department_id = d.department_id
    where e.salary > all (select salary
                          from employees
                          where department_id=60);
 
 
--평균보다 많이 급여를 받고 성에 u가 포함된 사원이 있는 부서에서 근무하는 모든 사원의 사원번호, 성, 급여를 출력
 
    select *
    from employees
    where salary  > ( select avg(salary)
                            from employees )
    and department_id in (select department_id
                          from employees
                          where last_name like '%u%');
 
 
--각 부서에서 급여를 많이 받는 사원의 이름, 급여, 부서코드를 출력
 
    select  last_name,salary,department_id
    from employees e1
    where salary  = (select max(salary) --in은 사용하면 중복된다. 사용x
                    from employees e2
                    where e1.department_id = e2.department_id
                    group by department_id)
    order by department_id asc;
                     
 
 
--각 직책별 평균 급여보다 많이 받는 사원의 사원번호, 이름 , 입사일 출력
 
 
    select * from employees;
    select employee_id, last_name, hire_date
    from employees e1
    where salary >(select avg(salary)
                    from employees e2
                    where e1.job_id = e2.job_id
                    group by job_id);
 
       
 
--각 부서의 평균 급여보다 많이 받는 사원의 사원번호, 이름, 급여, 부서명, 직책 및 입사일 출력
 
    select e1.employee_id, e1.last_name, e1.salary, e1. department_id, j.job_title, e1.hire_date
    from employees e1 inner join departments d
    on e1.department_id = d.department_id
    inner join jobs j
    on e1.job_id = j.job_id
    where salary >(select avg(salary)
                    from employees e2
                    where e1.department_id = e2.department_id
                    group by department_id);
 
 
 
Colored by Color Scripter
cs
반응형
저작자표시 비영리 변경금지 (새창열림)

'프로그래밍 정리 > Oracle' 카테고리의 다른 글

Oracle 기본정리 - recyclebin  (0) 2019.12.04
Oracle 기본정리 - sub query2(where절에 select 넣어보기)  (0) 2019.12.04
Oracle 기본정리 - Join 응용편(cross, equi, left, right inner join)  (0) 2019.11.29
Oracle 기본정리 - Join 기본편(cross, equi, left, right join)  (0) 2019.11.29
Oracle 기본정리 - scott계정 테이블사용하기(emp,dept....)  (0) 2019.11.29
Posted by Wooni0477
방명록 : 관리자 : 글쓰기
Wooni0477's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

나의 생각을 끄적이는 공간

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (118)
    • 프로그래밍 정리 (102)
      • Front (5)
      • Java (2)
      • JSP, Servlet, DB(oracle) (33)
      • JavaScript (0)
      • Spring (22)
      • Oracle (28)
      • Vue (1)
      • API (1)
      • err (5)
      • ERD (1)
      • etc.. (4)
    • BoostCourse (15)
      • HTML/CSS (7)
      • JavaScript (4)
      • JSP (4)
    • 공부 자료들.. (0)
    • 기타 (0)
    • --------------------------- (0)
    • 끄적이는공간.. (0)
      • 이벤트 (0)
      • 여행 (0)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바