inblog logo
|
sxias
    SELECTSUM, MAX, MINGROUP BY데이터베이스

    [데이터베이스] 4. SELECT 복수 행 함수

    문정준's avatar
    문정준
    Feb 25, 2025
    [데이터베이스] 4. SELECT 복수 행 함수
    Contents
    1. Horizonal Calculation2. Horizonal Calculation 2 3. Grouping 4. Grouping Practices
     

    1. Horizonal Calculation

    • 세로 연산 (평균, 갯수, 합계, 최대, 최소)
    -- 1. 그룹 함수 select avg(height) from student; select count(height) from student; select sum(height) from student; select max(height) from student; select min(height) from student;
    notion image

    2. Horizonal Calculation 2

    • 조건 추가 (where)
    -- 2. 원하는 행만 세로 연산 select avg(weight) from student where year(birthday) = '1975';
    notion image
     
    -- 문제 select concat(floor(avg(pay)), '만 원') from professor where position = '정교수'; select avg(height) from student;
    • select avg(height), name from student; 를 실행할 수 없는 이유
      • height의 평균이 출력되는 행에 넣을 이름이 없음
      • Grouping이 필요
    notion image
    notion image

    3. Grouping

    -- 3. 그룹핑 하기 -- squash (동일한 값) select * from emp; select avg(sal), deptno from emp where deptno = 10 union all select avg(sal), deptno from emp where deptno = 20 union all select avg(sal), deptno from emp where deptno = 30;
    • union all : 합집합
      • 각자 다른 결과를 합쳐서 표시
    notion image

    Grouping 개념

    select * from emp order by deptno asc; select avg(sal), deptno from emp group by deptno;
    • group by : 특정 값을 기준으로 우선 정렬 (order by)
      • 정렬 후 동일한 값끼리 기준으로 연산
      • 연산을 마친 후, 기준을 squash (압축)
    notion image
    notion image
    notion image
     

    4. Grouping Practices

    • 기준을 여러 개 잡을 수 있음
      • 이때, 기준별로 같은 값끼리 모여있다면 그 값 또한 기준으로 사용 가능
      • ex) 직업별 부서의 평균 연봉
        • 기준이 직업 → 부서
    -- 4. 그룹핑 원리 실습 select * from student; -- 학년별 키의 평균 select avg(height), grade, substr(jumin, 1, 2) from student group by grade, jumin; select * from emp; select job, avg(sal), deptno from emp group by job, deptno;
    notion image
    notion image
     

    having

    • 결과값에서 조건 추가
    -- 평균 연봉이 2000 이상인 부서는? select avg(sal), deptno from emp group by deptno having avg(sal) > 2000;
    notion image
     

    SQL 실행 순서

    • FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT
    notion image
    Share article
    Contents
    1. Horizonal Calculation2. Horizonal Calculation 2 3. Grouping 4. Grouping Practices

    Sxias ㆍ a32176740@gmail.com

    RSS·Powered by Inblog