🚩고용일 범위에 따른 부서
--요구사항.002.employees
--고용일이 2002~2004년 사이인 직원들은 어느 부서에 근무합니까? > hire_date + department_id
SELECT DEPARTMENT_ID FROM employees WHERE HIRE_DATE BETWEEN '2002-01-01' AND '2004-12-31';
🚩80년대생의 남자 직급
--요구사항.004.tblInsa
--남자 직원 + 80년대생들의 직급은 뭡니까? > ssn + jikwi
SELECT jikwi FROM TBLINSA WHERE substr(ssn, 1, 2) BETWEEN 80 AND 89 --80년대생
AND substr(ssn, 8, 1) = 1; --남자
select distinct jikwi from tblInsa
where ssn like '8%-1%';
🚩급여가 5000불이 넘는 직원 수
-- 3. hr.employees. job_id > 'IT_PROG' 중에서 급여가 5000불이 넘는 직원이 몇명? -> 2명
SELECT count(*) FROM EMPLOYEES WHERE SALARY >= 5000 AND JOB_ID = 'IT_PROG';
🚩tel 010을 안 쓰는 직원 수
-- 4. tblInsa. tel. 010을 안쓰는 사람은 몇명?(연락처가 없는 사람은 제외) -> 42명
SELECT count(*) FROM tblInsa WHERE tel NOT LIKE '010-%';
select
count(case
when not tel like '010%' then 1
end)
from tblInsa;
select
count(*) -
count(case
when tel like '010%' then 1
when tel is null then 1
end)
from tblInsa;
-- 5. city. 서울, 경기, 인천 -> 그 외의 지역 인원수? -> 18명
SELECT count(city) FROM tblInsa WHERE city NOT IN ('서울', '경기', '인천');
SELECT count(*) FROM tblInsa WHERE city NOT IN ('서울', '경기', '인천') AND city IS NOT NULL;
🚩여름 태생 여자 직원 수
-- 6. 여름태생(7~9월) + 여자 직원 총 몇명? -> 7명
SELECT count(*) FROM tblInsa WHERE substr(ssn, 4, 1) BETWEEN 7 AND 9 AND SSN LIKE '%-2%';
select count(*) from tblInsa
where (ssn like '__07%' or ssn like '__08%' or ssn like '__09%') and ssn like '%-1%';
select count(*) from tblInsa
where ssn like '__07%-2%' or ssn like '__08%-2%' or ssn like '__09%-2%';
🚩개발부 직위별 인원 수
-- 7. 개발부 + 직위별 인원수? -> 부장 ?명, 과장 ?명, 대리 ?명, 사원 ?명
SELECT jikwi AS 직위, COUNT(*) AS 인원수 FROM tblInsa WHERE buseo = '개발부' GROUP BY jikwi ORDER BY jikwi;
select
count(case
when jikwi = '부장' then 1
end) as "부장",
count(case
when jikwi = '과장' then 1
end) as "과장",
count(case
when jikwi = '대리' then 1
end) as "대리",
count(case
when jikwi = '사원' then 1
end) as "사원"
from tblInsa;