본문 바로가기
IT/SQL 기초강좌 (PostgreSQL)

79강 SQL 함수 정리 : PostgreSQL Aggregate Functions

by DoitSQL 2023. 1. 22.
728x90

PostgreSQL 기초강의, PostgreSQL 기초강좌

79강 SQL 함수 정리 : PostgreSQL Aggregate Functions

 

SQL 함수 정리 79강 시작합니다.

 

이번 시간에는

 PostgreSQL Aggregate Functions 집계함수

에 대해서 알아보는 시간입니다.

 

이번 시간에는 AVG(), COUNT(), MIN(), MAX(), SUM()과 같은 PostgreSQL  집계함수를 사용하는 방법에 대해 알아봅니다.


Introduction to PostgreSQL aggregate functions : 집계함수

집계 함수는 행 집합에 대해 계산을 수행하고 단일 행을 반환합니다. PostgreSQL 에는 다음과 같은 표준 SQL의 모든 Aggregate 함수가 포함됩니다:

  • AVG() – return the average value.
  • COUNT() – return the number of values.
  • MAX() – return the maximum value.
  • MIN() – return the minimum value.
  • SUM() – return the sum of all or distinct values.

우리는 자주 SELECT 문에서 GROUP BY 절과 함께 집계 함수를 사용합니다.

이 경우 GROUP BY 절은 결과 집합을 행 그룹으로 나누고 집계 함수는 각 그룹(예: 최댓값, 최솟값, 평균)에 대해 계산을 수행합니다.

 

다음 절에서만 집계 함수를 식으로 사용할 수 있습니다:


PostgreSQL aggregate functions examples

이제 집계함수를 사용하는 예제를 살펴보겠습니다.

 

샘플 데이터베이스의 필름 테이블을 시연에 사용해 보겠습니다.

film 테이블


AVG() function examples

다음 문장은 AVG() 함수를 사용하여 모든 필름의 평균 교체 비용을 계산합니다:

SELECT
     ROUND( AVG( replacement_cost ), 2 ) avg_replacement_cost
FROM
   film; 

결과

결과를 소수점 이하 2자리로 반올림하기 위해 ROUND() 함수가 사용되었습니다.

버림, 올림은 어떻게?

버림 trunc

SELECT trunc(19.986,2);
trunc는 자르는 함수지만 자를때 기본적으로 버림이 적용

올림

소수점이하 올림은 지원하는 함수가 없다.
그래서
SELECT round(19.986 + 0.005,2);
이런식으로 구현
정수로 반올림, 올림, 버림
SELECT round(19.986);
SELECT ceil(19.986);
SELECT floor(19.986);
실행해 보고 차이를 확인해보세요.

COUNT() function examples

필름 테이블의 행 개수를 가져오려면 다음과 같이 COUNT(*) 기능을 사용합니다:

SELECT 
    COUNT(*) 
FROM 
    film; 

결과

 

where 조건을 사용해 원하는 필름의 개수를 가져올 수 있습니다.

드라마 영화 수를 얻으려면 다음 문장을 사용합니다:

SELECT
     COUNT(*) drama_films
FROM
     film
INNER JOIN film_category USING(film_id)
WHERE
     category_id = 7; 

결과

category_id  7번이 드라마입니다.

 

카테고리별 필름 개수를 count 해보겠습니다.

SELECT
     name category
   , COUNT(*) drama_films
FROM
    film
INNER JOIN film_category USING(film_id)
INNER JOIN category USING(category_id)
GROUP BY category_id

결과


MAX() function examples   

다음 문구는 필름의 최대 교체 비용을 반환합니다.

SELECT 
    MAX(replacement_cost)
FROM 
    film; 

결과

교체 비용이 최대인 필름을 가져오려면 다음 쿼리를 사용합니다:

SELECT
     film_id,
     title
FROM
     film
WHERE
     replacement_cost =(
          SELECT
               MAX( replacement_cost )
          FROM
               film
     )
ORDER BY
     title;  

결과

서브쿼리는 최대 교체 비용을 반환했고, 그 후 외부 쿼리가 영화의 정보를 검색하는 데 사용되었습니다.


MIN() function examples   

다음 예제에서는 MIN() 함수를 사용하여 필름의 최소 교체 비용을 반환합니다:

SELECT 
    MIN(replacement_cost)
FROM 
    film; 

결과

최소 교체 비용이 드는 필름을 가져오려면 다음 쿼리를 사용합니다:

SELECT
     film_id,
     title
FROM
     film
WHERE
     replacement_cost =(
          SELECT
               MIN( replacement_cost )
          FROM
               film
     )
ORDER BY
     title; 

결과


SUM() function examples

다음 문장은 SUM() 함수를 사용하여 필름의 등급별로 그룹화된 필름의 총길이를 계산합니다:

SELECT
     rating,
     SUM( rental_duration )
FROM
     film
GROUP BY
     rating
ORDER BY
     rating; 

 

결과


이번 강의에서는 PostgreSQL  집계함수에 대해 배웠고 데이터를 요약하는 데 적용했습니다.

많은 예들을 만들어서 적용해 보시면 금방 익숙해질 거예요.

 

다음 시간에 만나요.


본 강의는 PostgreSQL Tutorial을 참조합니다.  https://www.postgresqltutorial.com/
Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다.

 

728x90

댓글