코딩이란 무엇일까

ORACLE[27일차](2) 날짜 함수 , 집계 함수,GROUP BY 본문

국비지원수업

ORACLE[27일차](2) 날짜 함수 , 집계 함수,GROUP BY

둥구는 지굴다 2022. 11. 30. 20:05

날짜 함수

SYSDATE

  • 오라클이 설치된 컴퓨터의 시스템 시간을 알려준다.
  • 년-월-일-시-분-초까지 표현 가능
SELECT SYSDATE FROM DUAL;

SYSTIMESTAMP

  • 시스템에서 현재 시간을 가져옴
  • 년-월-일-시-분-초-밀리세컨드까지 표현 가능
SELECT SYSTIMESTAMP FROM DUAL;

시간 확인해보기

SELECT SYSDATE,SYSTIMESTAMP
FROM DUAL;

TO_DATE(’ 문자열’,’ 날짜 포맷’)

문자열을 DATE형식으로 변환해 준다.

날짜를 적었다면 날짜 포맷도 적어주어야 한다.

SELECT TO_DATE('2022-11-30','YYYY-MM-DD'),TO_DATE('2022-11-30-7:30','yyyy-mm-dd HH24:MI')
FROM DUAL;

TO_CHAR(숫자 혹은 날짜, FORMAT)

숫자나 날짜를 문자로 변환해주는 함수이다.

SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD');

SYSDATE 즉, 현재 날짜와 시간을 설정한 형식에 맞추어 가져왔다.


집계 함수

  • 집계 함수란 여러 개의 행으로부터 하나의 결괏값을 반환하는 함수입니다.
  • SELECT 구문에서만 사용이 가능합니다.
  • WHERE절에서는 집계 함수를 사용할 수 없습니다.
  • 서브 쿼리에서는 집계 함수를 사용할 수 있습니다.

SUM( ) :합계

AVG( ) : 평균

COUNT ( ): 개수

MAX ( ): 최대 값

MIN( ) 최소 값


GROUP BY

GROUP BY는 특정 컬럼을 그룹화할 때 사용합니다.

HAVING : 그룹화한 결과에 조건을 걸 수 있습니다.

⚠️ WHERE과 HAVING의 차이는 WHERE은 그룹화하기 전의 조건이고, HAVING은 그룹화 후에 조건을 의미합니다.

사용법

SELECT [컬럼] FROM [테이블] 
GROUP BY [그룹화할 컬럼]
HAVING [조건식];

[GROUP BY를 사용하여 직업별로 급여 평균 출력하기]

SELECT JOB_TITLE 직업,AVG(E.SALARY) "급여 평균" FROM JOBS J JOIN EMPLOYEES E
ON J.JOB_ID=E.JOB_ID
GROUP BY JOB_TITLE;

[DEPARTMENT_ID가 같은 인원의 SALARY 중 평균이 5000 이상인 부서와 SALARY의 평균값을 출력하고 그 값을 반올림하시오]

SELECT DEPARTMENT_ID 부서번호,ROUND(AVG(SALARY)) 월급 FROM EMPLOYEES
GROUP BY DEPARTMENT_ID
HAVING AVG(SALARY)>=5000;

Comments