select ...
, (select ... from .... ) ==> Sub Query (서브쿼리 == 내부쿼리)
from .... ==> Main Query(메인쿼리 == 외부쿼리)
select *
from tbl_authorbook
where bookname in(select bookname
from tbl_authorbook
group by bookname
having count(*) > 1);
WITH
V AS
(
select department_id
, employee_id
, first_name || ' ' || last_name as fullname
, salary
, rank() over(partition by department_id
order by salary desc)
as dept_rank -- 부서내등수
, rank() over(order by salary desc)
as total_rank -- 전체등수
from employees
)
SELECT department_id as 부서번호
, employee_id as 사원번호
, fullname as 사원명
, to_char(salary,'99,999') as 기본급여
, dept_rank as 부서내등수
, total_rank as 전체등수
FROM V
WHERE (nvl(department_id,-9999), salary)
in(select nvl(department_id,-9999), max(V.salary)
from V
group by department_id)
or (nvl(department_id,-9999), salary)
in(select nvl(department_id,-9999), min(V.salary)
from V
group by department_id)
-- ORDER BY 6,1; -- 전체등수별로 보기 쉬움
ORDER BY 1,4;
-- 각 부서별로 최대,최소 기본급여의 등수를 보기 쉬움
select ...
from ..... ==> Main Query(메인쿼리 == 외부쿼리)
where ... in (select ...
from .....) ==> Sub Query (서브쿼리 == 내부쿼리)
create table tbl_테이블명
as
select ...
from ...
where ...;
create table tbl_테이블명_backup~~
as
select *
from 테이블명
update 테이블명 "별칭" set 컬럼명 = (select 컬럼명
-- set 컬럼명 은 되돌리고 싶은 컬럼명을 뜻 한다.
from 백업한테이블명
where 백업본컬럼명
= 별칭.테이블컬럼명);
-- 백업할 조건 (변경하지 않은 컬럼 선택)
-- Ex)
update employees E set first_name = (select first_name
from tbl_employees_backup_20240225
where employee_id = E.employee_id
만나이, 정년퇴직일 서브쿼리 : https://velog.io/@jjoung-2j/%EB%8B%A8%EC%9D%BC%ED%96%89-%ED%95%A8%EC%88%98-%EA%B8%B0%ED%83%80-%ED%95%A8%EC%88%98
-> local_hr에서작업한것