-
SQL Study3 - SELECTDB/SQL 2018. 8. 7. 09:40반응형-- 46. 사원수가 가장 많은 도시에서 근무하는 모든 사원들의 부서별 및-- 직무별 평균 연봉을 조회하라.SELECT L.CITY, D.DEPARTMENT_NAME, J.JOB_ID, ROUND(AVG(E.SALARY) , 0) AVG_SALARYFROM EMPLOYEES E, DEPARTMENTS D, LOCATIONS L, JOBS J, (SELECT *FROM (SELECT L.CITY, COUNT(1) CNTFROM EMPLOYEES E, DEPARTMENTS D, LOCATIONS LWHERE E.DEPARTMENT_ID = D.DEPARTMENT_IDAND D.LOCATION_ID = L.LOCATION_IDGROUP BY L.CITYORDER BY CNT DESC)WHERE ROWNUM = 1) L_COUNTWHERE E.DEPARTMENT_ID = D.DEPARTMENT_IDAND L.LOCATION_ID = D.LOCATION_IDAND L.CITY = L_COUNT.CITYAND J.JOB_ID = E.JOB_IDGROUP BY L.CITY, D.DEPARTMENT_NAME, J.JOB_ID;-- 47. 입사일이 가장 오래된 사원을 조회하라.SELECT *FROM EMPLOYEESWHERE HIRE_DATE = (SELECT MIN(HIRE_DATE)FROM EMPLOYEES);-- 48. 입사일이 가장 최근인 사원을 조회하라.SELECT *FROM EMPLOYEESWHERE HIRE_DATE = (SELECT MAX(HIRE_DATE)FROM EMPLOYEES);-- 49. 가장 최근에 입사한 사원과 가장 오래전에-- 입사한 사원의 일차를 계산해 조회하라.SELECT MAX(HIRE_DATE) - MIN(HIRE_DATE)FROM EMPLOYEES;-- 50. 가장 최근에 입사한 사원과 가장 오래전에-- 입사한 사원의 시간차를 계산해 조회하라.SELECT ROUND(MAX(HIRE_DATE) - MIN(HIRE_DATE))*24FROM EMPLOYEES;-- 현재 날짜SELECT SYSDATEFROM DUAL;-- 하루 기준SELECT SYSDATE, SYSDATE - 1 -- 하루 전, SYSDATE + 1 -- 하루 후, ADD_MONTHS(SYSDATE, 1) -- 한달 후, ADD_MONTHS(SYSDATE, -1) -- 한달 전, ADD_MONTHS(SYSDATE, -12) -- 일년 전, ADD_MONTHS(SYSDATE, 12) -- 일년 후FROM DUAL;-- 시간 기준SELECT SYSDATE - (1/24) -- 한 시간 전, SYSDATE - (3/24) -- 세 시간 전, SYSDATE + (5/24) -- 다섯 시간 후, SYSDATE + (10 / 24 / 60) -- 10분 후, 분 / 시간(하루) / 분(시간), SYSDATE + ( 5 / 24 / 60 / 60) -- 5초 후FROM DUAL;-- 원하는 날짜 구간 조회, 2007/05/10 ~ 2007/08/10SELECT *FROM EMPLOYEESWHERE HIRE_DATE >= TO_DATE('2007/05/10', 'YYYY-MM-DD')--AND HIRE_DATE <= TO_DATE('2007/08/10', 'YYYY-MM-DD')AND HIRE_DATE <= ADD_MONTHS(TO_DATE('2007/08/10', 'YYYY-MM-DD'), 3);반응형
'DB > SQL' 카테고리의 다른 글
Update Query시 두 테이블 간 1:1 대칭 후 값 Set 시키기 - Merge Into (0) 2019.03.28 Eclipse - SQL Explorer 실행 (0) 2018.08.26 SQL Study2 - SELECT (0) 2018.08.06 SQL SELECT Study (0) 2018.08.03 SQL - JOIN, SUB QUERY, INLINE TABLE, IN VIEW (0) 2018.08.03 댓글