SQL - 집계 함수: 데이터 분석의 관문

안녕하세요, 데이터 마법사 지망생 여러분! SQL 집계 함수의 fascinzing 세계로 인도해드리게 되어 매우 기쁩니다. 컴퓨터 과학 교사로서 수년간의 경험을 가지고, 이 강력한 도구들을 습得一한 학생들이 눈빛을 띠는 것을 수없이 목격했습니다. 그麼, 손을 걷어붙이고 시작해보죠!

SQL - Aggregate Functions

집계 함수는 무엇인가요?

파티에서 모두의 평균 나이를 알고 싶다면, 각 사람에게 직접 물어보고 계산하는 대신 손가락을 튕겨서 답을 얻을 수 있었으면 얼마나 좋을까요? SQL에서 집계 함수가 하는 일이 바로 그거예요 - 일련의 값을 계산하여 단일 결과를 반환합니다.

가장 흔히 사용되는 집계 함수

가장 자주 사용되는 집계 함수의 간략한 개요를 시작해보겠습니다:

함수 설명
COUNT() 행의 수를 계산합니다
SUM() 값들의 합을 계산합니다
AVG() 값들의 평균을 계산합니다
MAX() 값들의 최대值을 찾습니다
MIN() 값들의 최소值을 찾습니다

이제 이 함수들을 실제 예제와 함께 자세히 탐구해보겠습니다.

COUNT(): 출석부 취급자

COUNT() 함수는 학교의 출석부 취급자와 같습니다. 단순히 질의 조건에 맞는 행의 수를 계산합니다.

예제 1: 모든 행 계산

SELECT COUNT(*) AS total_products
FROM products;

이 질의는 'products' 테이블의 모든 행을 계산합니다. 결과는 다음과 같을 수 있습니다:

total_products
100

설명: 여기서 우리는 SQL에게 'products' 테이블의 모든 행(*)을 계산하고 결과 열을 'total_products'라는 친절한 이름으로 부르도록 요청하고 있습니다.

예제 2: 특정 행 계산

SELECT COUNT(category) AS categories_count
FROM products
WHERE price > 50;

이 질의는 가격이 50달러 이상인 제품의 카테고리 수를 계산합니다. 결과는 다음과 같을 수 있습니다:

categories_count
15

설명: 우리는 'category' 열을 계산하지만, 가격이 50달러 이상인 제품에 대해서만입니다. 이렇게 하면 고가 제품의 다양성을 이해할 수 있습니다.

SUM(): 회계사

SUM()은 회사의 회계사처럼, 열의 모든 숫자를 더합니다.

예제:

SELECT SUM(price) AS total_revenue
FROM orders
WHERE order_date = '2023-05-01';

이 질의는 2023년 5월 1일에 주문된 주문의 총 수익을 계산합니다. 결과는 다음과 같을 수 있습니다:

total_revenue
12500.50

설명: 우리는 특정 날짜에 주문된 모든 주문의 'price' 열을 더하여 그 날의 총 수익을 얻습니다.

AVG(): 반 평균 계산기

AVG()는 일련의 숫자의 평균을 계산합니다. 학교에서 반 평균을 계산하는 것과 같습니다.

예제:

SELECT AVG(rating) AS average_rating
FROM product_reviews
WHERE product_id = 101;

이 질의는 제품 101의 평균 평점을 계산합니다. 결과는 다음과 같을 수 있습니다:

average_rating
4.2

설명: 우리는 제품 101의 모든 평점을 가져와 평균을 계산합니다. 이렇게 하면 제품의 인기도를 빠르게 파악할 수 있습니다.

MAX()과 MIN(): 기록 보관자

MAX()과 MIN()은 스포츠의 기록 보관자처럼, 최고와 최소 값을 추적합니다.

예제:

SELECT
MAX(price) AS highest_price,
MIN(price) AS lowest_price
FROM products
WHERE category = 'Electronics';

이 질의는 전자 제품 카테고리의 최고와 최소 가격을 찾습니다. 결과는 다음과 같을 수 있습니다:

highest_price lowest_price
1999.99 9.99

설명: 우리는 'price' 열의 최고와 최소 값을 찾지만, 전자 제품 카테고리의 제품에 대해서만입니다.

집계 함수의 조합

이 함수들을 조합하면 진정한 마법이 일어납니다. 더 복잡한 예제를 보겠습니다:

SELECT
category,
COUNT(*) AS product_count,
AVG(price) AS average_price,
MAX(price) AS max_price,
MIN(price) AS min_price
FROM products
GROUP BY category
HAVING COUNT(*) > 5
ORDER BY product_count DESC;

이 질의는 우리의 제품 카테고리에 대한 종합적인 개요를 제공합니다. 결과는 다음과 같을 수 있습니다:

category product_count average_price max_price min_price
Electronics 50 299.99 1999.99 9.99
Clothing 30 49.99 199.99 14.99
Books 20 24.99 99.99 4.99

설명:

  • 우리는 결과를 카테고리별로 그룹화하고 있습니다.
  • 각 카테고리에 대해 제품 수를 계산하고, 평균 가격, 최고 가격, 최소 가격을 찾습니다.
  • HAVING 절은 5개 이하의 제품을 가진 카테고리를 필터링합니다.
  • 마지막으로 결과를 제품 수로 내림차순으로 정렬합니다.

결론

축하합니다! SQL 집계 함수의 강력한 세계로의 첫 걸음을 뗐습니다. 이 도구들은 데이터 분석에 필수적이며, 대규모 데이터셋을 빠르게 요약하고 이해하는 데 도움이 됩니다.

기억하시길, 연습이 완벽을 만듭니다. 자신만의 질의를 작성하고, 다양한 함수 조합을 실험해보세요. 실수를 두려워 말아요 - 그게 우리가 배우는 방법입니다!

제 경험에서는 학생들이 기본 SELECT 문에서 시작하여 이 함수들을 사용하여 복잡한 데이터셋을 자신감 있게 분석할 수 있게 되는 것을 목격했습니다. 여러분도 그들과 같은 길을 걸어가고 있습니다!

계속 탐구하고, 호기심을 가지고, 행복하게 질의를 작성하세요!

Credits: Image by storyset