리텐틱스(Retentics) 인사이트

SQL 지침서 - 기초편

리텐틱스(Retentics)

2023.03.10 08:00
  • 1323
  • 콘텐츠에 ‘좋아’해줘서 고마워요 -
    3
  • 1

개발자에게 데이터를 요청할 때 오랜 시간 기다렸던 경험이 있으신가요? 그 이유는 무엇일까요?

 

○ “한정된 리소스” :

  • 개발자는 주어진 개발 일정이 있기 때문에, 산발적으로 주어지는 업무를 해결하기 어려워요.

 

○ “단순 요청의 반복” :

  •개발자 입장에서는 매우 기초적인 업무여서 성과에 도움이 되지 않는, 우선순위가 낮은 일로 받아들여질 수 있어요.

 

 

그럼에도 왜 마케터 또는 기획자가 데이터를 다루어야 할까요?

 

○ “커리어 경쟁력” :

  •데이터 분석에 능숙한 마케터와 기획자는 전략 및 캠페인에 유의미한 정보를 제공하여 경쟁자보다 우위를 확보할 수 있어요.

 

○ “성과 최적화” :

  •‘매출’과 같은 기초 데이터에서 ‘클릭율’, ‘전환율’과 같은 지표 분석까지, 데이터를 사용 하여 효과적인 캠페인을 만들 수 있어요.

 

○ “개인화 마케팅” :

  • 마케팅 메세지와 캠페인을 개인화하여 성과지표(ex: ‘클릭율’, ‘전환율’)를 높일 수 있어요. 예를 들어, 특정 소비자의 구매나 행동에 대한 데이터를 분석해 그 소비자의 공감을 불러일으킬 가능성이 높은 맞춤형 메시지를 생성할 수 있어요.

 

 

 

SQL을 이용해 직접 데이터를 추출하면 기다리는 시간은 줄이고, 이런 장점들을 챙길 수 있어요!

 

○ 실용성” :

  • 짧은 시간 내, 필요한 기능들만 이용하여 유의미한 결과를 바로 도출할 수 있어요.

 

○ “효율성” :

  • 작동 구조를 먼저 익히고, 빠른 결과를 확인하면 흥미를 잃지 않고 지속적으로 데이터를 활용할 수 있어요.

 

 

🧐 여기서 잠깐!

 

SQL 이란?

 

○ 간단 설명 :
  • 데이터를 ‘저장하고 관리’ 하기 위한 프로그래밍 언어입니다.
  • Python 과의 차이 : 데이터베이스에 접근하고 데이터를 추출하는 일에 더 적합합니다.

 

○ 환경설정 :
  
⌑ 카페24 또는 NHN고도 등 과 같은 호스팅 서비스를 사용하는 경우.
  • 호스팅사에서 제공하는 데이터베이스에서 간단한 설정을 통해, SQL 쿼리로 데이터를 불러오는 것이 가능합니다. (링크 : 카페24 데이터베이스 접속 및 세팅 방법)

    · 쿼리란? : 웹 서버에 특정한 정보를 보여달라고 요청하는 것.

⌑ Bigquery 또는 mySQL 등을 통해 자사 데이터베이스에 접근 가능한 경우.
  • 검색을 통해서 설치 방법을 따라하실 수도 있지만, 개발자를 통해 환경설정을 요청하는 것이 권장됩니다.

 

 

 

그럼 이제 커머스의 주요 지표인 ‘매출’, ‘주문 수’(or 판매개수), ‘AOV’ 3가지 지표를 다양한 방식으로 도출하면서 SQL 구문 작성법을 알아볼게요.

 

[거래 데이터세트 예시 - Table 이름]: transactions


테이블(Table)이란? : 데이터베이스에서 행(가로-Row)과 열(세로Column)로 짜여져 표에 기록된 데이터의 집합. (엑셀과 같은 형식)

 

○ 명령어(쿼리문)에 따른 결과값이 제공되니, 비교해보면서 어떤 값이 출력되는지 파악하면 좋아요.

 

 

 

 

1. 매출

 

1-1. 전체 매출 구하기

 

전체 매출 데이터가 궁금한 경우.

 

○ 값(ex: ‘총 주문금액’, ‘매출’) 을 한글로 기재하였으며, 사용하고 있는 환경에서 해당하는 열의 값을 그대로 써주시면 됩니다.

○  ‘transactions’ 은 테이블 이름이며 FROM + ‘데이터를 불러올 테이블 이름’ 형식으로 작성합니다.

(이 또한 위치에 사용하고 있는 환경에서의 값 이름 사용) 

  

 매출

 760000


 

 

1-2. 특정 제품(’제품1’) 의 매출 구하기

 

특정 제품의 매출이 궁금한 경우.

 

 

 

 매출

 500000

 

 

 

1-3. 특정 제품(’제품1’) 의 특정 날짜(20일 ~ 21일) 매출 구하기

 

특정 제품의 특정 기간동안 매출이 궁금한 경우.

 

 


 매출

 80000

 

 

 

1-4. 제품별 매출 구하기

 

제품별로 매출을 비교/확인하고 싶은 경우.

 


  

 제품명

 매출

 제품1 

 500000

 제품2 

 60000

 제품3

 200000

 

더 나아가 제품별로 정해진 기간의 매출을 확인하고 싶은 경우. 

 

 

 제품명

 매출

 제품1

 80000

 제품3 

 25000

 

 

 

1-5. 날짜별 매출 구하기

 

날짜를 기준으로 매출을 확인하고 싶은 경우.

 


 

 주문일시

 매출

 2023-02-20

 45000

 2023-02-21

 60000

 2023-02-22

 15000

 2023-02-23

 35000

 2023-02-24

 50000

 2023-02-25

 140000

 2023-02-26

 100000

 2023-02-27

 200000

 2023-02-28

 25000

 2023-02-29

 90000

 

 

 

2. 주문수 & 판매개수

 

2-1. 전체 주문수 구하기

 

주문번호의 개수를 기준으로 주문수를 파악하고 싶은 경우.

 


 

 주문수

 10

 

 

 

2-2. 특정 제품(’제품1’) 의 주문수 구하기

 

주문번호의 개수를 기준으로 ’제품1’의 주문수를 파악하고 싶은 경우. 

 


 

 주문수

 6

 

 

 

2-3. 특정 제품(’제품1’) 의 특정 날짜(’2023-02-20’) 판매개수 구하기

 

주문번호의 개수를 기준으로 ’제품1’의 ’2023-02-20’일 주문수를 파악하고 싶은 경우.

 


 

 판매개수

 1

 

 

 

2-4. 제품별 판매개수 구하기

 

제품별로 판매개수의 총 합계를 구하는 경우.

 

 


 제품명

 판매개수

 제품1

 25

 제품2

 4

 제품3

 8

 

 

 

2-5. 제품별 판매개수 구하기 (제품명까지 변경해보기)

 

제품별로 판매개수의 총 합계를 구하면서, 표현되는 제품명을 수정하고 싶은 경우.

 

○ CASE 문법을 사용해도, 실제 데이터베이스에서의 값은 변하지 않고, 결과 테이블에서만 보여집니다.

 

 

 제품명

 판매개수

 꿀사과

 25

 나주배

 4

 거봉포도 

 8

 

 

 

2-6. 날짜별 판매개수 구하기

 

날짜별로 판매개수를 구하고 싶은 경우.

 


 

 주문일시

 판매개수

 2023-02-20

 2

 2023-02-21

 3

 2023-02-22

 1

 2023-02-23

 2

 2023-02-24

 2

 2023-02-25

 7

 2023-02-26

 4

 2023-02-27

 10

 2023-02-28

 1

 2023-02-29

 5

 

 

 

2-7. 날짜별 판매개수 구하기 (HAVING 사용)

 

WHERE와 동일하게 조건을 거는 문법 HAVING 이 존재.

 

○ 특정 열을 그룹화 하는 ’GROUP BY’ → 특정 열을 그룹화한 결과에 조건을 거는 ’HAVING’

  • WHERE는 GROUP BY를 통해 그룹화 하기 전 사용.

  • HAVING은 그룹화 된 데이터 이후에 조건을 걸 때 사용.

 

 

 주문일시

 판매개수

 2023-02-25

 7

 2023-02-27

 10

 

 

 

 

3. AOV

 

“ AOV(Average Order Value) = 매출 / 주문수”

 

 

3-1. 전체 AOV 구하기

 

AOV를 구하기 위해서 ‘총 주문금액’의 합과 ‘판매개수’의 개수를 나누어야하는 경우.

 

 

 AOV

 76000

 

 

 

3-2. 특정 날짜(’2023-02-20’) AOV 구하기

 

특정 날짜의 AOV를 확인하고 싶은 경우.

 

 

 AOV

 22500

 

 

 

3-3. 날짜별 AOV 구하기

 

날짜별로 AOV를 확인하고 싶은 경우.

 

○ 출력될 데이터의 양이 많을 때, 로딩 시간이 길어지거나 컴퓨팅 비용이 커지는 것을 막기 위해 ‘LIMIT OFFSET’ 이라는 기능을 사용할 수 있습니다.

○ 이 기능은 결과값이 출력되는 행을 선택하여 출력할 수 있습니다.

 

 

 주문일시

 AOV

 2023-02-21

 60000

 2023-02-22

 15000

 2023-02-23 

 17500

 2023-02-24 

 50000

 

 

 

다음 컨텐츠에서는 SQL 심화편이 업로드 될 예정이에요!

 

🧐 심화편 미리보기

 

○ 심화1 : 쿼리문 작성 시, 순서와 들여쓰기를 고려한 작성 방법.

  • 문법 작성 순서 :

      · ‘SELECT’? ‘FROM’? ‘WHERE’?

  • 들여쓰기 (Indentation) :

      · 가독성을 높이기 위해, 규칙에 맞춰 쿼리문을 작성하는 것.

 

○ 심화2 : 두개의 테이블을 연결하여 데이터를 가공하는 ‘JOIN’.
  • JOIN :
      · 두개 이상의 테이블을 결합하여 데이터를 가공할 수 있는 문법.
      · 보고 싶은 데이터가 여러개의 테이블에 나누어져 있는 상황에서 사용.

 

○ 심화3 : 원하는 조건을 자유롭게 걸게 해주는 ‘서브쿼리(Sub Query)’
  • 서브쿼리 : 쿼리 내부에 포함된 또 다른 SELECT 문을 의미.

 

 

정리하기

 

단순 지표 도출을 넘어, 고도화된 지표 개선을 통해 비즈니스 성장을 경험하고자 하시는 분들은 언제든지 메이크대쉬로 문의주세요. 그로스 마케팅 매니저가 빠르게 연락 드릴게요 !

 

글: 김재욱, 여훈기

 

"우리 그로스 마케팅 좀 잘해요!" 하는 회사에서 공통적으로 얘기하는 ‘고객 세그멘테이션’, ‘코호트 분석’ … 

중요하다고 강조하지만, 우리 비즈니스에 맞게 어떻게 잘 활용할 수 있는지 막막하셨나요?

 

메이크대쉬 웨비나를 통해 기초 개념부터 실제 활용사례까지 전부 확인해보세요!

 

메이크대쉬 웨비나 신청 바로가기(클릭)

 

  • #SQL
  • #그로스 마케팅
  • #AOV