0Pricing
Digital Marketing Academy · 강의

SELECT, WHERE, GROUP BY

캠페인 데이터를 집계합니다

SELECT, WHERE, GROUP BY은(는) CoddyKit의 무료 Digital Marketing Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Digital Marketing Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Digital Marketing Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

세 가지 동사

거의 모든 마케팅 지표는 세 가지 절로 구성됩니다. SELECT는 열을 선택하고, WHERE는 행을 필터링하며, GROUP BY는 행을 세그먼트별로 묶습니다.

이 세 가지를 익히면 대부분의 일상적인 분석 질문에 스스로 답할 수 있습니다.

SELECT channel, SUM(revenue) AS revenue
FROM orders
GROUP BY channel;

SELECT: 열 선택

SELECT는 반환할 항목을 나열합니다. AS를 사용해 열 이름을 바꿔 결과를 읽기 쉽게 만들고, 인라인으로 새 값을 계산할 수도 있습니다.

결과 집합은 간결하게 유지하세요. 특히 대형 테이블에서는 실제로 필요한 열만 가져와야 합니다.

SELECT campaign_id AS campaign,
       spend,
       spend * 1.2 AS spend_with_fees
FROM campaigns;

WHERE: 행 필터링

WHERE는 조건에 맞는 행만 남깁니다. AND와 OR로 조건을 결합해 원하는 세그먼트로 범위를 좁힐 수 있습니다.

날짜 필터는 마케팅 분석의 기본으로, 보고 기간을 정확하게 정의합니다.

SELECT *
FROM sessions
WHERE channel = 'email'
  AND session_date >= DATE '2026-01-01'
  AND device = 'mobile';

IN과 BETWEEN으로 필터링

IN은 목록에 있는 값 중 하나와 일치시키므로 여러 캠페인을 한 번에 조회하기에 좋습니다. BETWEEN은 범위를 포함하므로 날짜 기간을 지정하기에 적합합니다.

복잡한 필터를 긴 OR 연결문 대신 짧고 읽기 쉬운 형태로 유지할 수 있습니다.

SELECT order_id, revenue
FROM orders
WHERE channel IN ('paid_search', 'paid_social')
  AND order_date BETWEEN DATE '2026-03-01' AND DATE '2026-03-31';

GROUP BY: 세그먼트별 그룹화

GROUP BY는 같은 값을 공유하는 행을 하나로 묶어 그룹마다 한 행으로 만듭니다. SUM, COUNT, AVG 같은 집계 함수와 함께 사용하면 세그먼트별 지표를 얻을 수 있습니다.

이렇게 원시 이벤트를 채널별 성과 테이블로 바꿀 수 있습니다.

SELECT channel,
       COUNT(*) AS sessions,
       SUM(revenue) AS revenue
FROM sessions
GROUP BY channel;

집계 함수

SUM은 매출을 합산하고, COUNT는 이벤트 수를 세며, AVG는 평균을 구하고, COUNT(DISTINCT ...)는 고유 사용자 수를 셉니다.

마케팅에서는 고유값 수가 중요합니다. 전체 세션 수와 고유 방문자 수는 서로 매우 다른 수치이기 때문입니다.

SELECT campaign_id,
       COUNT(*) AS clicks,
       COUNT(DISTINCT user_id) AS reach,
       AVG(revenue) AS avg_order
FROM orders
GROUP BY campaign_id;

다중 열 그룹화

채널별 기기처럼 둘 이상의 열을 기준으로 그룹화해 행렬을 만들 수 있습니다. 각각의 고유한 조합이 하나의 행이 됩니다.

아무것도 스프레드시트로 내보내지 않고도 더 깊이 있는 세그먼트 분석을 할 수 있습니다.

SELECT channel, device,
       COUNT(*) AS sessions
FROM sessions
GROUP BY channel, device
ORDER BY channel, sessions DESC;

HAVING: 그룹 필터링

WHERE는 그룹화하기 전에 행을 필터링하고, HAVING은 집계한 후 그룹을 필터링합니다. 기준값을 초과하는 세그먼트만 남기려면 HAVING을 사용합니다.

예를 들어 주문을 100건 넘게 발생시킨 캠페인만 표시할 수 있습니다.

SELECT campaign_id, COUNT(*) AS orders
FROM orders
GROUP BY campaign_id
HAVING COUNT(*) > 100
ORDER BY orders DESC;

정렬 및 제한

ORDER BY는 결과를 정렬하여 가장 중요한 행이 먼저 표시되도록 합니다. LIMIT는 표시할 행의 수를 제한하므로 상위 N개 보고서에 적합합니다.

두 절을 함께 사용하면 "매출 기준 상위 5개 캠페인은 무엇인가요?"라는 질문에 바로 답할 수 있습니다.

SELECT campaign_id, SUM(revenue) AS revenue
FROM orders
GROUP BY campaign_id
ORDER BY revenue DESC
LIMIT 5;

조건부 집계

FILTER(또는 집계 함수 안의 CASE)를 사용하면 신규 매출과 재방문 매출처럼 여러 조건부 지표를 하나의 쿼리에서 한 번에 계산할 수 있습니다.

여러 쿼리를 실행할 필요가 없고 세그먼트도 완전히 동일한 기준으로 유지됩니다.

SELECT channel,
       SUM(revenue) FILTER (WHERE is_new_customer) AS new_rev,
       SUM(revenue) FILTER (WHERE NOT is_new_customer) AS repeat_rev
FROM orders
GROUP BY channel;

함께 적용하기

전체 쿼리에서는 모든 절을 차례로 적용합니다. WHERE로 행을 필터링하고, 그룹화한 다음, HAVING으로 그룹을 필터링하고, 마지막으로 정렬하고 제한합니다.

위에서 아래로 읽으면 채널에 대한 완전한 분석 흐름을 파악할 수 있습니다.

SELECT channel, SUM(revenue) AS revenue
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY channel
HAVING SUM(revenue) > 1000
ORDER BY revenue DESC;

빠른 확인

주문이 50건을 초과하는 캠페인 그룹만 확인하려고 합니다. 집계된 그룹을 필터링하는 절은 무엇인가요?

복습

SELECT는 열을 선택하고, WHERE는 행을 필터링하고, GROUP BY는 세그먼트로 나누며, HAVING은 그룹을 필터링합니다. ORDER BY와 LIMIT는 출력 형태를 결정합니다.

조건부 집계를 사용하면 여러 지표를 한 번에 계산할 수 있습니다. 다음으로 여러 테이블의 데이터를 JOIN으로 결합하는 방법을 알아봅니다.

자주 묻는 질문

“SELECT, WHERE, GROUP BY” 강의는 무료인가요?

네 — “SELECT, WHERE, GROUP BY” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Digital Marketing Academy 강의 전체를 잠금 해제할 수 있습니다. Digital Marketing Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“SELECT, WHERE, GROUP BY”에서 뭘 배우나요?

캠페인 데이터를 집계합니다 브라우저에서 직접 실행하는 실습 코드로 Digital Marketing Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Digital Marketing Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Digital Marketing Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“SELECT, WHERE, GROUP BY” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Digital Marketing Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Digital Marketing Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 마케터가 SQL을 배우는 이유
  2. SELECT, WHERE, GROUP BY
  3. 마케팅 테이블 조인하기
  4. 코호트 및 퍼널 쿼리
← Digital Marketing Academy(으)로 돌아가기