ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 다중행 함수(집계함수 Aggregate Function)
    SQL 2023. 4. 18. 21:23

    ◆ 집계함수

    - COUNT(*): 전체 Row의 개수

    - COUNT(exp): exp 열의 Row 개수, NULL은 연산에서 제외

    SELECT COUNT(*)
    	, COUNT(MGR) # NULL값이 존재한다면 제외하고 카운트
        , COUNT(1)

    - SUM(exp): exp 열 값의 총합, NULL은 연산에서 제외

    - AVG(exp): exp 열 값의 평균, NULL은 연산에서 제외

    - MAX(exp): exp 열 중 가장 큰 값, NULL은 연산에서 제외

    - MIN(exp): exp 열 중 가장 작은 값, NULL은 연산에서 제외

     

    - STDDEV(exp): exp 값의 표준편차, NULL은 연산에서 제외

    - VARIAN(exp): exp 값의 분산, NULL은 연산에서 제외

     

    ◆ PRACTICE

    1) EMP 테이블에서 최고 급여액, 최저 급여액, 총 급여액, 평균 급여액을 표시하는 질의 작성(평균 급여액은 정수로 반올림하여 표시)

    select max(sal) as sal_max
    	, min(sal) as sal_min
        , sum(sal) as sal_total
        , round(avg(sal)) as sal_avg
       from emp

    2) EMP 테이블에서 최고 급여액과 최저 급여액의 차액을 표시하는 질의 작성

    select coalesce(max(sal), 0)-coalesce(min(sal),0) as sal_diff
    	from emp

    3) EMP 테이블에서 총 사원수 및 1981, 1982년에 입사한 사원 수를 표시하는 질의 작성

    select count(*) as cnt_emp
    	, count(case when to_char(hiredate, 'YYYY') = 1981 then 1 end) as cnt_hire_1981
        , count(case when to_char(hiredate, 'YYYY') = 1982 then 1 end) as cnt_hire_1982
       from emp

    4) 사원 중에서 관리자의 수를 표시하는 질의 작성(중복이 제거된 관리자의 수)

    select count(distinct(mgr)) as cnt_mgr
    	from emp

    'SQL' 카테고리의 다른 글

    SQL(HAVING 절)  (0) 2023.04.18
    SQL(GROUP BY)  (0) 2023.04.18
    SQL 함수(CASE 문)  (0) 2023.04.13
    SQL 함수(명시적 유형변환 함수)  (0) 2023.04.12
    SQL 함수(숫자 함수)  (0) 2023.04.12
Designed by Tistory.