소셜로그인 중단 안내

계정으로 로그인 기능이 2023년 11월 16일 중단되었습니다.

아이보스 계정이 사라지는 것은 절대 아니며, 계정의 이메일 주소를 이용해 로그인 하실 수 있습니다.

▶️ 자세한 공지사항 확인

[메이크대쉬 인사이트] SQL 지침서 - 기초편

2023.03.10 12:15

MakeDash

조회수 1,565

댓글 1

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

  • “한정된 리소스” :
    • 개발자는 주어진 개발 일정이 있기 때문에, 산발적으로 주어지는 업무를 해결하기 어려워요.
  • “단순 요청의 반복” :
    • 개발자 입장에서는 매우 기초적인 업무여서 성과에 도움이 되지 않는, 우선순위가 낮은 일로 받아들여질 수 있어요.

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

  • “커리어 경쟁력” :
    • 데이터 분석에 능숙한 마케터와 기획자는 전략 및 캠페인에 유의미한 정보를 제공하여 경쟁자보다 우위를 확보할 수 있어요.
  • “성과 최적화” :
    • ‘매출’과 같은 기초 데이터에서 ‘클릭율’, ‘전환율’과 같은 지표 분석까지, 데이터를 사용하여 효과적인 캠페인을 만들 수 있어요.
  • “개인화 마케팅” :
    • 마케팅 메세지와 캠페인을 개인화하여 성과지표(ex: ‘클릭율’, ‘전환율’)를 높일 수 있어요. 예를 들어, 특정 소비자의 구매나 행동에 대한 데이터를 분석해 그 소비자의 공감을 불러일으킬 가능성이 높은 맞춤형 메시지를 생성할 수 있어요.

SQL을 이용해 직접 데이터를 추출하면 기다리는 시간은 줄이고,

이런 장점들을 챙길 수 있어요!

  • “실용성” :
    • 짧은 시간 내, 필요한 기능들만 이용하여 유의미한 결과를 바로 도출할 수 있어요.
  • “효율성” :
    • 작동 구조를 먼저 익히고, 빠른 결과를 확인하면 흥미를 잃지 않고 지속적으로 데이터를 활용할 수 있어요.


 

🧐 여기서 잠깐!

 

SQL 이란?

 

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

 

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

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

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

 

 

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

테이블(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
제품
325000

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-03-01
90000  


 

2. 주문수 & 판매개수

 

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

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


주문수
10

 

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

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


주문수

 

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

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


판매개수
1

 

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

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

제품명
판매개수
제품1
5
제품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-03-01
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 그로스해킹

스크랩

공유하기

신고

하트 아이콘지금눈와요님 외 9명이 좋아합니다.

목록글쓰기
댓글 1
댓글 새로고침
로그인 후 더욱 많은 기능을 이용하세요!아이보스 로그인