본문 바로가기
컴퓨터공학/데이터베이스(database)

database grouping, aggregate function, ordering

by 바코94 2024. 5. 14.
  • ORDER BY 로 정렬해서 select하기
    • 조회 결과를 특정 attribute(s)를 기준으로 정렬할 때
      • ex. order by id asc, salary desc
    • ASC(default), DESC
  • aggregate function으로 통계 결과 뽑기
    • 여러 tuple들의 정보를 요약해서 하나의 값으로 추출하는 함수
    • count, sum, min, max, avg
    • null 값들은 제외하고 요약 값을 추출함
    • count(*), count(id) 와 같이 사용
      • 이 때 *는 튜플의 개수를 지칭
      • id가 null이면 카운트에서 제외됨.
    • GROUP BY로 그룹화 하기
      • 관심있는 attribute(s)를 기준으로 그룹을 나눠서 그룹별로 aggregate function을 적용하고 싶을 때 사용
      • grouping attribute(s): 그룹을 나누는 기준이 되는 attribute(s)
        • select 절에 grouping attribute를 적어주어야함.
      • groupoing attribute(s)에 null 이 있을 때, null 값끼리 그룹이 됨.
  • HAVING 키워드로 그룹 필터링 하기
    • grouping result에 조건(필터링)을 걸고 싶을 때 사용.
    • group by와 함께 사용
    • having 조건 만족하는 그룹만 결과에 포함됨.

예제1. 각 부서별 인원수를 인원 수가 많은 순서대로 정렬해서 알고 싶다.

예제2. 회사 전체 평균 연봉보다 평균 연봉이 적은 부서들의 평균 연봉을 알고 싶다.

예제3. 각 프로젝트별로 프로젝트에 참여한 90년대생들의 수와 이들의 평균 연봉을 알고 싶다.

예제3.1. 프로젝트 참여 인원이 7명 이상인 프로젝트에 한정해서 각 프로젝트별로 프로젝트에 참여한 90년대생들의 수와 이들의 평균 연봉을 알고 싶다.

 

select로 조회하기 순서: 1~6숫자 순서대로  개념적으로 
6.SELECT attribute(s) or aggregate function(s)
1.FROM table(s)
2.[WHERE condition(s)]
3.[GROUP BY group attribute(s)
  4 [HAVING group condition(s)]
]
5. [ORDER BY attribute(s)]

'컴퓨터공학 > 데이터베이스(database)' 카테고리의 다른 글

m1 mysqlworkbench ui 버그  (0) 2024.05.20
database three valued logic  (0) 2024.05.14
database table join  (0) 2024.05.14
[Query Processing]Join Operation  (0) 2020.06.07
[Query Processing]Sorting  (0) 2020.06.07