Oracle DB 그룹함수

강정우·2022년 7월 5일
0

DB

목록 보기
16/30
post-thumbnail

SQL 그룹함수

  • 그룹 함수란 : 하나 또는 여러개의 값을 받아들이어 함수를 거쳐 단 1개의 결과값을 return 하는 것, 행 집합에 작용하여 그룹 당 하나의 결과를 생성하는 것.
  • 그룹 함수의 특징은 null값을 무시한다는 것이다.

1. AVG, SUM 함수

  • 숫자 data에만 이용이 가능하다.
  • String, date data에는 사용이 불가하다. 왜냐하면 AVG, SUM은 산술연산을 실행하는 것인데 문자열과 날짜는 산술연산이 불가능 하기 때문이다.

2. MIN, MAX 함수

  • 모든 data 유형에 대해 적용 가능하다.

3. COUNT 함수

  • table의 행의 수를 반환한다.
  • 이때 모든 함수 뒤에는 column값이 나오는데 이때 모두 null을 무시한체 계산이 된다. 하지만 아스타리스크(*)가 COUNT 함수 뒤에 오게 된다면 null을 인정하여 계산한다.

4. COUNT 함수에서 DISTINCT 키워드 사용

  • COUNT(discinct column) : column에 중복되지 않는 null이 아닌 값의 수를 반환합니다.
  • COUNT(all column) : default 값

5. NVL 사용

  • NVL함수를 다른 그룹함수 1개와 중첩하여 사용 가능하고 null값을 포함하도록 강제로 지정하여 사용 가능

6. Group by

  • 그룹함수는 반드시 그룹이 만들어져야 사용이 가능하다.
  • 한마디로 문법적으로 select 절에 그룹함수가 아닌 column이 명시되어있다면 반드시 group by로 묶어줘야한다는 의미이다.
  • group by 절은 select절에 목록에 포함시키지 않아도 되나, 어떠한 결과값인지 알 수 없으므로 반드시 명시 해주는 것이 좋다.

7. having

  • 만들어져 있는 그룹을 한하나 비교함.
  • 행이 그룹화 되고 그룹함수가 적용됩니다.
  • having 절과 일치하는 그룹이 결과값으로 표시됩니다.
  • 헷갈린다면 각 절 다음의 요소로 무엇이 오는지 외운다면 편함. 하지만 난 이해했지롱.

8. 기타

  • 적는 순서 : select -> from -> where -> group by -> having -> order by

  • 실행 순서 : from -> where -> group by -> having -> select -> order by

  • 이때 where 절에는 단순 column에 관한 제한만 작동 가능

  • having 절에는 그룹함수에 대한 제한만 작동 가능 물론, 일반 제어문도 가능하나, 성능이 매우 떨어지고 느리기 때문에 사용 금지.

  • table이 하나라면 절대 table에 alias 추가 사용 금지. 성능이 떨어지기 때문.

  • column formatting 에 관하여 만약 다음과 같이 결과값이 잘 보이지 않는다면.

  • 그때는 column formatting이 잘 못 되었기 때문에 확인해보자!

profile
智(지)! 德(덕)! 體(체)!

0개의 댓글