데이터

제로베이스 데이터사이언스 스쿨 - Part.02 데이터 분석을 위한 SQL-5

Leah (리아) 2025. 10. 4. 17:36
반응형

 연산자

1. 연산자 종류

SQL의 연산자는 크게 다섯 가지로 분류된다.

비교 연산자 =, >, <, >=, <=, <> 두 값의 크기 또는 동일 여부 비교
논리 연산자 AND, OR, NOT 조건식을 결합하거나 반전
특수 연산자 BETWEEN, IN, LIKE, IS NULL 범위, 집합, 패턴, NULL 여부 판별
산술 연산자 +, -, *, / 수치형 연산 수행
집합 연산자 UNION, UNION ALL SELECT 결과를 결합 (중복 여부 선택 가능)

 

예시

  • WHERE PRICE BETWEEN 10000 AND 20000
  • WHERE NAME LIKE '%deluxe%'
  • WHERE HOTEL IS NULL
  • SELECT * FROM A UNION SELECT * FROM B

 


 

2. 실무에서 자주 사용하는 연산자

  • 기간 필터링:
    BETWEEN 또는 NOT BETWEEN을 활용해 특정 기간의 데이터를 조회
     
WHERE MONTH(BIRTH_DATE) BETWEEN 1 AND 3
  • 비회원 조회:
    LEFT JOIN + IS NULL 조건으로 구매 이력이 없는 회원 식별
  • 패턴 검색:
    LIKE '%seoul%' → seoul을 포함한 호텔명 검색
  • 산술 연산:
    QTY * PRICE → 매출액 계산

 


3. 연산자를 활용한 데이터 분석

실무 예제로, 특정 조건에 맞는 회원의 구매 패턴을 분석하고 캐시 지급 금액을 산출하는 쿼리를 작성했다

.

  • 조건 요약:
    • 2024년 주문 데이터
    • 구매월 = 탄생월, 구매월 ≠ 가입월
    • 호텔별 구매금액의 10%를 캐시로 지급
  • 핵심 SQL 구문
SELECT HOTEL,
       SUM(QTY * PRICE) AS SALES_AMT_SUM,
       SUM(QTY * PRICE) / 10 AS SALES_AMT_SUM_DISCOUNT
FROM SALE AS A
INNER JOIN CUSTOMER AS B ON A.MEM_NO = B.MEM_NO
...
WHERE YEAR(ORDER_DATE) = 2024
  AND MONTH(ORDER_DATE) = MONTH(BIRTH_DATE)
  AND MONTH(ORDER_DATE) <> MONTH(JOIN_DATE)
GROUP BY HOTEL;

 

4. 코딩 테스트 예제

마지막 실습에서는 연산자 조합을 활용해 실무형 코드를 작성했다

.
주요 포인트는 다음과 같다.

  • JOIN + 조건 필터링:
    호텔, 서비스, 주문 정보를 조합하여 매출액 및 평균 주문량 계산
  • 조건 제어:
    • SERVICE_NAME NOT LIKE '%hill%'
    • PRICE > 500000
  • 집계 및 HAVING 사용:
HAVING COUNT(ORDER_DETAIL_NO) >= 100
ORDER BY COUNT(ORDER_DETAIL_NO) DESC;
  • 실무형 분석 목표:
    • 호텔·서비스별 매출 집계
    • 생일 주문 고객 식별
    • 평균 주문 수량 및 재구매 패턴 파악

 

* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.


 

💡 생각 정리

이번 강의에서는 SQL 연산자를 단순한 조건문으로만 보지 않고, 데이터 분석의 논리적 도구로 이해할 수 있게 되었다.

특히 비교·논리·특수 연산자들은 WHERE 절을 구성하는 기본 단위이지만, 실제로는 데이터를 정제하고 맥락화하는 핵심 로직이라는 점이 인상 깊었다.


예를 들어, LIKE와 IS NULL을 적절히 조합하면 결측 데이터나 비정형 패턴을 식별할 수 있고, BETWEEN과 IN은 단순 범위 조회를 넘어 데이터 세분화와 필터링의 기준이 된다.

 

또한 산술 연산자(QTY * PRICE)를 활용하면 SQL만으로도 간단한 계산과 비즈니스 로직 구현이 가능하다는 점에서, Python이나 Excel에 의존하지 않고 데이터베이스 내에서 바로 통계나 KPI를 산출할 수 있다는 가능성을 보았다.

 

집합 연산자(UNION, UNION ALL)는 여러 SELECT 결과를 통합할 수 있어, 데이터 소스가 여러 테이블로 분리된 상황에서 매우 실용적이었다.

 

결국 이번 강의는 SQL의 “연산자”가 단순한 문법이 아니라,
데이터 분석의 논리적 사고를 코드로 표현하는 언어적 도구라는 점을 깨닫게 해주었다.


🚀 적용점

  • 비교·논리·특수·산술·집합 연산자를 각각 사용해 조건문을 다양하게 조합하는 연습을 반복한다.
  • IS NULL, NOT IN, LIKE 조건을 이용해 결측 데이터, 비회원 데이터, 특정 키워드 포함 데이터를 구분해본다.
  • QTY * PRICE와 같이 산술 연산자 기반의 계산 필드를 자주 활용해 데이터베이스 내에서 직접 통계값을 생성한다.
  • UNION과 UNION ALL의 차이를 실습을 통해 체감하고, 중복 데이터 처리 방법을 이해한다.
  • 실무 데이터 분석 과제에서, 연산자만으로도 로직·필터링·계산을 완성할 수 있는 SQL 코드 설계를 목표로 한다.

👉 이번 강의는 SQL의 논리적 사고력을 한 단계 끌어올리는 내용이었다.
연산자의 개념을 완전히 이해하면, 이후 함수, 서브쿼리, 윈도우 함수에서도 훨씬 정교한 데이터 분석을 수행할 수 있다.

반응형