1. Subquery: 여러 번의 연산을 한 번에 수행하기
서브쿼리는 쿼리문 안에 포함된 또 다른 쿼리문으로, 연산 결과를 다시 연산이나 조건문에 사용해야 할 때 사용함.
- 연산을 여러 번 수행해야 하거나, 조건문에 연산 결과(예: 평균값 등)를 사용 시.
- 기본 구조:
select column1, special_column
# 원래 테이블(table1)에서 필요한 것들을 골라낸다
from
( /* subquery */
select column1, column2 special_column
# 이때 column2의 이름을 special_column으로 Alias.
from table1
) a
# 이제 괄호 안에 있는 내용물 전체를 하나의 새로운 테이블인 것으로 취급
2. JOIN: 서로 다른 테이블의 데이터 합치기
필요한 데이터가 여러 테이블에 흩어져 있을 때, 공통된 컬럼(Key)을 기준으로 테이블을 결합하여 조회하는 방법
- 주요 종류
- LEFT JOIN: 공통 컬럼을 기준으로 두 테이블을 합치되, 왼쪽 테이블의 데이터는 오른쪽 테이블에 매칭되는 값이 없더라도 모두 표시.
- INNER JOIN: 두 테이블 모두에 공통으로 존재하는 데이터만 결합하여 표시.
- 기본 원리: Pandas의 merge() 생각하면 됨, 두 테이블이 공통으로 가진 컬럼(예: 고객ID, 주문번호 등)이 연결 고리 역할
- 활용 예시:
- 주문 테이블(food_orders)과 고객 테이블(customers)을 customer_id 기준으로 결합하여 고객의 이름, 나이 등을 함께 조회.
- 주문 테이블과 결제 테이블(payments)을 결합하여 주문 금액에 따른 수수료율을 연산.
3. 생각의 흐름
' 어디서(Target) 무엇을(Columns) 가져와서, 어떻게 걸러내고(Condition), 어떻게 가공할지(Formula) '
- 목적 생각하기
- 항목(어떤 테이블,어떤 컬럼)
- 필터링(어떤 조건)
- 가공(어떤 함수, 수식)