[SQL] group by, order by, aggregate

최민수·2023년 2월 27일
0

CS 전공지식

목록 보기
11/36

movie

GROUP BY

  • 특정 속성 기준으로 그룹을 나눠서 그룹별로 표현하고 싶을 때 사용.

  • group by 로 걸어준 속성은 반드시 select문에 포함되어야 함. (무엇을 기준으로 그룹화 했는지 알아야 하기 때문)

    ex) 각 프로젝트에 참여한 직원 수와 평균 연봉을 알고 싶다.

    select w.proj_id, count(*) as people, avg(salary)
     from works_on w join employee e on w.empl_id = e.id
     group by w.proj_id;

    ex2) 프로젝트 참여 인원이 7명 이상인 프로젝트에 대하여 조건이 추가됐을 경우. (~ 이하 동일)

    select w.proj_id, count(*) as people, avg(salary)
     from works_on w join employee e on w.empl_id = e.id
     group by w.proj_id
     having count(*) >= 7;
    • having: group by 로 나온 결과 값에 조건을 걸어주기 위해 사용.

ORDER BY

  • 특정 속성 기준으로 정렬할 때 사용.
  • ASC, DESC 정렬 가능.
    select * from employee
     order by salary DESC;

Aggregate 함수

  • 여러 튜플 정보를 요약해서 값을 추출하는 함수.
  • COUNT, SUM, MAX, MIN, AVG 등이 있음.
  • NULL 값은 포함하지 않음.
    select count(*) from employee;
profile
CS, 개발 공부기록 🌱

0개의 댓글