SQL 집계함수
✅ 집계함수는 동시에 사용하여 한눈에 데이터 셋을 볼수 있다.
✅ 데이터를 요약해서 살펴보면서 통계적 의미를 찾을 수 있다.
SQL 그룹화
➡️ GROUP BY
[작성 방법]
⭐️ SQL의 작동 순서
FROM → ON → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY
❓GROUP BY 쓰는 법❓
▶️ 집계함수와 GROUP BY 절을 함께 사용하는 SQL문
SELECT
기준컬럼(pk),
집계함수(조건컬럼을 기준으로 여러개의 집계함수 동시사용 가능)
FROM 테이블명
WHERE 조건 #(생략가능)
GROUP BY 기준컬럼(pk)
;
❓에러가 날 경우❓
▶️기준컬럼과 집계함수를 작성하고 GROUP BY를 사용하지 않을 때
select 기준컬럼, 집계함수(조건컬럼을 기준으로 여러개의 집계함수 동시사용 가능)
from 테이블명
where 조건 #(생략가능)
;
➡️ HAVING
⭐️ WHERE절과 HAVING의 차이

❓HAVING 쓰는 법❓
▶️집계함수, GROUP BY절, HAVING을 함께 사용하는 SQL문
SELECT
기준컬럼,
집계함수(조건컬럼을 기준으로 여러개의 집계함수 동시사용 가능)
FROM 테이블명
WHERE 조건 #(생략가능)
GROUP BY 기준컬럼
HAVING 조건식
;
SQL 서브쿼리
✅ 서브쿼리 사용 이유
✅ 실행 순서
서브쿼리 실행(안쪽에 위치한 쿼리) → 메인쿼리(바깥쪽에 위치한 쿼리) 실행
쿼리의 가장 안쪽부터, 바깥쪽 쿼리를 실행하며 최종 결과값을 반환
✅ 특징
[서브쿼리의 종류]
➡️ 중첩(일반) 서브쿼리
SELECT *
FROM marketer_sql_theglory
WHERE 나이 >
(
SELECT 나이
FROM marketer_sql_theglory
WHERE 이름='홍길동'
)
;
▶️해석: '홍길동'의 나이 데이터가 수정되어도 쿼리를 수정할 필요 없이 조건절에 있는 서브쿼리에 의해 값이 새롭게 갱신된다.
➡️ 스칼라 서브쿼리
SELECT
name
,age
,(
SELECT count(*)
FROM user_basic2
WHERE user_basic1.name = user_basic2.name
) AS same_name_cnt
, (
SELECT SUM(payment)
FROM user_basic2
WHERE user_basic1.name = user_basic2.name
) AS same_name_sumamount
FROM user_basic1
;
▶️ 해석:
user_basic1의 name과 user_basic2의 name이 일치하는 경우를 COUNT 하여 'same_name_cnt' 컬럼으로 변환
user_basic의 이름과 user_basic2의 name이 일치하는 경우의 결제금액(payment)을 SUM하여 'same_name_sumamount' 컬럼으로 변환
➡️ 🔥인라인 뷰🔥(가장 많이 사용)
SELECT sub.age, sub.job
FROM
(
SELECT *
FROM user_basic
WHERE age >= 33
)AS sub
▶️ 해석: 나이가 33세 이상인 모든 데이터 중 나이, 직업 컬럼 값 변환하기
오늘의 라이브세션 인사이트
⭐️ 집계함수, 그루핑, 서브쿼리에 대한 개념이 이해되었다.
⭐️ 과제를 통해서 개념에 대해서 이해할 수 있는 것을 기대할 수 있다. (이해 ▶︎ 응용)