[SQL] 함수를 통해 집계하기

Joney의 SW 공부 블로그·2023년 1월 14일
0

SQL

목록 보기
4/14

함수를 사용해서 집계

데이터 통합

  • 테이블에서 하나의 칼럼을 가져왔을 때 같은 데이터가 있는 경우, DISTINCT를 사용하면 데이터를 하나로 정리할 수 있음
  • DISTINCT는 중복된 데이터를 하나로 통합
  • 칼럼에 어떤 데이터가 있는지만 알고 싶은 경우 사용
  • SELECT한 결과를 통합
  • 칼럼을 여러개를 썼을 경우, 두 칼럼의 조합이 중복된 것을 정리
SELECT
	DISTINCT pref
FROM
	inquiry;

<예시>

원본DISTINCT 사용
서울시서울시
충청도충청도
경기도경기도
서울시
서울시

집약 함수

함수명인수반환값
COUNT* 또는 컬럼명레코드 또는 컬럼 수
SUM컬럼명컬럼의 합계값
MAX컬럼명컬럼의 최댓값
문자열은 사전순 최대, 날짜는 최신순
MIN컬럼명컬럼의 최소값
문자열은 사전순 최소, 날짜는 오래된 순
AVG컬럼명컬럼의 평균값
SELECT
	SUM(star), MAX(star), MIN(star), AVG(star)
FROM
	inquiry;
  • COUNT를 사용하면 레코드 수를 가져올 수 있음
  • *가 아닌 컬럼명을 인수로 넣으면 NULL이 아닌 값을 세서 반환
SELECT
	COUNT(*)
FROM
	inquiry;
  • 조건과 결합하여 사용 가능
  • star 칼럼의 값중에 age가 30인 값을 추출하여 평균 계산
  • 평균값을 포인트 평균으로로서 출력
SELECT
	AVG(star) AS 포인트 평균
FROM
	inquiry
WHERE
	age = 30;

조건을 붙여서 COUNT 실행

  • CASE, WHEN, THEN, END를 사용하여 조건을 붙일 수 있음
  • WHEN다음에 조건을 작성
  • THEN 다음에 조건을 만족한 경우 count 정도를 작성 (1이면 조건을 만족하면 1을 올린다는 의미)
SELECT
	COUNT(CASE WHEN product_name = "pensil" THEN 1 END)
FROM
	product

출처: 그림으로 배우는 SQL 입문
profile
SW 지식 노트 블로그

0개의 댓글