본문 바로가기

Database/SQL

[코테를 위한 Oracle 정리] 6. 그룹 함수를 사용해 데이터 요약하기

손에 잡히는 10분 SQL 9장 참고

합계, max, min, 평균 등 직접 데이터를 가져와 계산하지 않고 요약 정보를 가져오는 방법을 알아본다

그룹 함수

  • AVG(열) : 평균
    • where 로 조건을 걸면 해당 조건 안에서의 평균값을 구한다
  • COUNT() : 행의 개수를 센다
    • COUNT() : NULL 값인 행을 포함하여 행의 수를 센다
    • COUNT(열) : NULL 값을 가진 행은 무시하고 행의 수를 센다
  • MAX(열) : 열에서 가장 큰 값 반환
    • 숫자, 날짜, 문자 모두 지원. 문자의 경우 정렬했을 때 가장 마지막 행 반환.
    • NULL을 무시한다
  • MIN(열) : 열에서 가장 작은 값 반환
    • 숫자, 날짜, 문자 모두 지원. 문자의 경우 정렬했을 때 첫 번째 행 반환.
    • NULL을 무시한다
  • SUM(열) : 합계를 구한다
    • NULL을 무시한다

중복되는 값에 대한 그룹 함수

SELECT AVG(DISTINCT PROD_PRICE) AS avg_price
FROM PRODUCTS
WHERE VEND_ID = 'DLL01';
  • ALL : 모든 행에 대해 계산을 수행
    • Default 값으로 비워두면 기본적으로 가정된다.
  • DISTINCT : 고유한 값에 대해서만 계산을 수행
    • COUNT에 DISTINCT를 쓰고 싶다면 * 대신 열을 명시해야 한다

새로운 별칭 지정하기

그룹 함수의 결과에 별칭을 실제 존재하고 있던 열 이름을 그대로 사용하면 에러가 날 수도 있다.