ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL - AGGREGATE (집계 함수)
    SQL 2022. 12. 10. 16:16
    -- 집계 함수 : 여러행 또는 테이블 전체 행으로부터 하나의 결과값을 반환하는 함수
    
    -- 집계함수(Aggregate function)의 이해
    -- GROUP BY절을 이용하여 그룹 당 하나의 결과로 그룹화 할 수 있다.
    -- HAVING절을 사용하여 집계함수를 이용한 조건 비교를 할 수 있다.
    -- MIN, MAX 함수는 모든 자료형에 사용 할 수 있다.
    -- 숫자 뿐 아니라 정렬 가능한 대상은 최대 값을 뽑아 낼 수 있다.
    -- 일반적으로 가장 많이 사용하는 집계함수에는 AVG(평균), COUNT(개수), MAX(최대값), MIN(최소값), SUM(합계) 등이 있다.
    
    -- 1) COUNT : 검색된 행의 수를 반환 한다.
    -- 검색된 행의 총 수 4개를 반환. 즉 4개의 부서가 존재한다.
    SELECT COUNT(deptno) FROM dept;
     
    
    -- 2) MAX : 컬럼값 중에서 최대값을 반환 한다.
    -- sal 컬럼값 중에서 제일 큰값을 반환. 즉 가장 큰 급여를 반환.
    SELECT MAX(salary) salary FROM employees;
     
     
    -- 3) MIN : 컬럼값 중에서 최소값을 반환 한다.
    -- sal 컬럼값 중에서 가장 작은 값 반환. 즉 가장 적은 급여를 반환
    SELECT MIN(salary) salary FROM employees;
      
    -- 응용 문제
    SELECT family_name, first_name, salary FROM employees 
    	WHERE salary = (SELECT MAX(salary) FROM employees) -- 많이 받는 사람
    	UNION -- 둘 다 보여주기
    SELECT family_name, first_name, salary FROM employees 
    	WHERE salary = (SELECT MIN(salary) FROM employees);  -- 적게 받는 사람
    
    -- IN 사용
    SELECT family_name, first_name, salary FROM employees WHERE salary 
        IN ((SELECT MAX(salary) FROM employees),(SELECT MIN(salary) FROM employees));  
      
      
    -- 4) AVG : 평균 값을 반환 한다.
    SELECT AVG(salary) salary FROM employees;
    
    -- dev001 부서의 사원 평균 급여를 소수점 1자리 이하에서 반올림
    SELECT ROUND(AVG(salary),1) salary FROM employees WHERE depart_no = 'dev002';
     
     
    -- 5) SUM : 검색된 컬럼의 합을 반환 한다.
    SELECT SUM(salary) salary FROM employees;
    
    -- dev002 부서의 사원 급여 합계를 조회.
    SELECT SUM(salary) FROM employees WHERE depart_no = 'dev002';

    'SQL' 카테고리의 다른 글

    SQL - NUMBERIC (숫자 표현)  (0) 2022.12.10
    SQL - DATE TIME (날짜 표현)  (0) 2022.12.10
    SQL - 정규화  (0) 2022.12.10
    SQL - limit, offset (페이징)  (0) 2022.12.10
    SQL - auto_increment (자동 증가)  (0) 2022.12.10
Designed by Tistory.