데이터분석 과정/SQL

SQL | SUM함수, COUNT함수 사용법 정리

ANNASENA 2024. 1. 5. 12:36
728x90

 

0. SUM 함수와 COUNT 함수가 헷갈리는 이유

 

' 00 데이터의 총 수를 세라' 라는 문제를 생각없이 풀다보면

SUM 함수와 COUNT 함수를 혼용해서 쓸 때가 있다. 

 

예를 들어, '주문정보 테이블의 주문 건수를 세라' 라는 문제가 있을 때

 

① 한 주문번호 당 주문한 건 수의 값들을 모두 합해야 하는지 

② 주문 건수 컬럼의 전체 행 수를 세야 하는지 헷갈린다.

( ①은  SUM 함수 사용 / ②은 COUNT 함수를 사용)

 

SUM 함수COUNT 함수의 차이를 명확히 알고 넘어가자.

 


1. SUM 함수와 COUNT 함수

: SQL의 기본 연산 함수

SUM함수와 COUNT함수 사용법 차이

▶ 합계 SUM(계산할 컬럼명)

: 해당 컬럼 안에 들어있는 값들의 합계를 구해줌

 

▶ 개수 COUNT(세어줄 컬럼명)   *컬럼명 대신 1 혹은 * 사용 가능

: 현재 테이블이 몇 개의 데이터를 가지고 있는지 개수를 세줌

+ DISTINCT 몇 개의 값을 가지고 있는지 구할 때 사용 (= 값을 중복없이 세어줌)

 


2. 실습문제

 

▶ food_orders 테이블

- 컬럼: restauratn_name / cuisine_type / price / quantity / day_of_the_week / rating / food_preparation / delivery_time 등

 

 

2-1) 상품 준비시간의 합계 구하기

 

▶ SUM 함수 사용

: 상품 준비시간 값들을 모두 합해줌.

SELECT SUM(food_preparation_time) sum_prep,
FROM food_orders fo

 


 

 

2-2) 주문 건수와 주문한 고객 수 구하기

 

▶ COUNT 함수 사용

: 주문이 들어온 총 건 수와 주문한 고객 수를 구함.

SELECT count(1) count_orders,
       count(DISTINCT customer_id) count_customer
FROM food_orders fo

 

>> COUNT 함수를 사용해 나온 결과인 count_orders인 1,898전체 행 수를 세준 것.

>> count_customer의 결과가 1,200인 이유는 customer_id(고객_id)를 DISTINCT로 중복 제거를 해줬기 때문.

즉, 한 주문자 당 주문 횟수가 1회 이상인 경우도 있다는 뜻임.


 

3. 관련 SQL 노트정리

 

▶ SELECT~ FROM ~ WHERE절

[IT 교육/SQL]   SQL 1주차 강의 노트정리 [국비지원_스파르타 코딩클럽]

 

SQL 1주차 강의 노트정리 [국비지원_스파르타 코딩클럽]

스파르타 코딩클럽 SQL 1주차 강의 '핵심' 노트정리 1. Show tables : 데이터베이스에 저장되어 있는 테이블 불러오기 2. Select ~ from 테이블 : 찾는 정보가 있는 테이블로부터 ~ (뽑고 싶은 필드들)을 가

nasena.tistory.com

 

▶ 집계함수, Group By 절, Order By 절

[IT 교육/SQL]   SQL 2주차 강의 노트정리 [국비지원_스파르타 코딩클럽]

 

SQL 2주차 강의 노트정리 [국비지원_스파르타 코딩클럽]

스파르타 코딩클럽 SQL 2주차 강의 '핵심' 노트정리 1. 통계 : 최대 / 최소 / 평균 / 개수 * 최대 : max(필드명) * 최소: min(필드명) * 평균: avg(필드명) * 개수: count(필드명) * 합계: sum(필드명) 2. Group by (

nasena.tistory.com

 

728x90