비밀번호

커뮤니티2

  • 흐림속초25.0흐림북춘천27.9흐림철원27.2흐림동두천24.3흐림파주24.0흐림대관령21.8흐림춘천27.6흐림백령도24.7구름많음북강릉24.2흐림강릉25.9구름많음동해25.0비서울25.8비인천25.3흐림원주24.8흐림울릉도24.6비수원24.8흐림영월24.1흐림충주25.2흐림서산25.9흐림울진22.9비청주26.2흐림대전25.8흐림추풍령24.5비안동24.9흐림상주23.0비포항26.0흐림군산24.9비대구27.0비전주25.8비울산25.0비창원23.4비광주24.8비부산23.5흐림통영22.8구름많음목포27.5흐림여수23.1안개흑산도23.4구름많음완도28.6흐림고창26.3흐림순천21.7비홍성25.8흐림서청주24.7구름많음제주32.8맑음고산27.3구름많음성산28.0구름많음서귀포29.0흐림진주22.6흐림강화24.0흐림양평23.5흐림이천23.6흐림인제26.0흐림홍천26.2흐림태백25.5흐림정선군27.9흐림제천23.7흐림보은24.1흐림천안25.2흐림보령26.2흐림부여26.2흐림금산26.4흐림세종25.2흐림부안25.2흐림임실23.8흐림정읍26.9흐림남원24.1흐림장수24.2흐림고창군26.3흐림영광군26.6흐림김해시23.9흐림순창군24.5흐림북창원24.2흐림양산시24.9흐림보성군23.9구름많음강진군26.5구름많음장흥25.9구름많음해남27.3흐림고흥25.1흐림의령군23.9흐림함양군23.1흐림광양시22.6구름많음진도군27.3흐림봉화24.1-영주24.3흐림문경24.5흐림청송군24.8흐림영덕23.2흐림의성24.0흐림구미26.5흐림영천26.0흐림경주시26.3흐림거창23.3흐림합천23.8흐림밀양25.0흐림산청23.1흐림거제22.9흐림남해23.0흐림북부산24.8
  • 2024.07.16(화)

구글애널리틱스[Google Analytics]구글애널리틱스 커뮤니티입니다.

[업무 고충 해결] 빅쿼리와 구글 시트를 연동하여 엑셀 작업 간소화 하기 (2)

[Google Analytics] 구글애널리틱스 커뮤니티입니다. 구글애널리틱스관련 정보를 공유 해 주세요!

 

안녕하세요 도치쀼 입니다 :) 

 

이전 글에서 '엑셀 시트와 빅쿼리를 연결하는 방법' 에 대해서 공유 드렸었는데

이번에는 제가 그 연동 이후에 위클리 리포팅을 위해 작업한 쿼리를 공유리려 합니다.

 

이 글을 조회하는 분들이 저와 동일한 리포팅 폼을 활용할 가능성은 낮더라도 

비슷한 고충이 있으시다면 참고하시길 바라며 이어서 적어보겠습니다 :) 

 

(쿼리 초보인데 좀 더 효율성을 높히는 방법이 보이신다면 언제든 피드백 부탁드려요~! )

 

 

우선 쿼리를 공유드리기 앞서 

제가 왜 위클리 리포팅에 쿼리를 활용하려 했고, 또 구체적으로 어떤 값들을 나오게 만드려는지 공유드리겠습니다.

 

아래의 포맷은 제가 리포팅하는 캠페인의 

유입 세션수, 캠페인 내 이벤트 수, 캠페인 외의 구매 관련 행동 등에 대해 트렌드를 파악하는 리포트의 형식 입니다.

 

원래는 엑셀의 함수를 이것 저것 써가며 계산해오고 있었는데  빅쿼리에서 실행 버튼 클릭 한번으로

10개 국가의 세션수의 누적값 / 2초 이상 체류한 세션의 비율 / 금주 세션수 / 전주 대비 증감률을  구할 수 있다면...?

 

시도해 볼만 한 과정이죠 :)

 

 

기존에 제가 위의 리포팅을 작성할 때는 대시보드로 만든 테이블에서 값을 확인한 후, 

그 값을 엑셀로 옮겨와 가공하여, 궁극적으로 저 형태로 ppt 를 만들어야 했는데, 

 

값을 옮기는 과정에서 오류가 있을 경우 재작업을 한 적도 잦고, 

함수를 복사/붙여넣기하는 과정에서 값이 누락되는 상황도 종종 있었습니다.

 

허나 이전 글에서 공유드린 '구글 시트와 빅쿼리를 연동' 하게 되면  

실시간 연동을 통해 데이터를 빠르고, 정확하게 리포팅 할 수 있게 됩니다.

 

엑셀 함수 필요 없이 클릭 한 번 만으로요...! 

 

 

즉 ,이렇게 아래처럼 구글 시트만 있으면

 

 

<구글 시트 업데이트 예시 -- 1월 15-21일 (1월 3주차) 데이터 업데이트> 

 

 

 뿅 하고 원하는 결과값들을 한번에 얻을 수 있답니다 

<실행 후 예시 결과값 : 1월 3주차까지의 누적 세션수, 유효 세션수의 비중 , 이번주 총 세션수, 전주 대비 세션 증감률> 

 

 

 

[Let's Query!]

그럼 위의 리포팅에서 왼쪽 하단에 있는 Visit 항목들을 계산한 쿼리를 하나씩 파보겠습니다 :) 

 

Step 1

기존의 피벗 테이블 형식을 Unpivot 함수를 통해 풀어주고, sum () 윈도우 함수로 누적 세션수 값을 구해주는 테이블을 with 절로 만들어줍니다.

     

SELECT  

            PARSE_DATE('%Y-%m-%d',date)asdate,

            country,

            sessions,

            sum(sessions)over(partitionbycountryorderbydaterowsbetweenunboundedprecedingandcurrentrow)cumulated_sessions,

      FROM`lifesgood-test.lifesgood_weekly_reprot_format.organic_and_paid sessions_table`

     

      unpivot(sessions

              forcountry

 

              in(GLOBAL,KR,US,AU,DE,INDIA,SA,SAEN,SA_SAEN,AE,AEAR,AE_AEAR,VN,BR,daily_total))

 

 

Unpivot 함수를 통해 아래처럼 country 라는 컬럼에 국가코드값이 넣어지면서 피벗테이블 형식이 풀렸죠?

 

누적값을 구할때는 국가별로 partition by 해주고, 날짜 순서대로 누적할 것 이기 때문에 order by date 를 해줍니다

 

 

이 테이블을 unpivot_sessions 라고정의하고 with 절로묶어줍니다.

<+>

window 함수 sum  특성상 

 

위의 쿼리식과

 

sum(sessions)over(partitionbycountryorderbydate) 

 

아래의 식은 같은 결과를 보여줍니다. 

 

 

sum(sessions)over(partitionbycountryorderbydate rows between unbounded preceding and current row )  

 

 

 

Step 2

 

 2초 이상 체류한 세그먼트의 세션수(valid_sessions) 테이블도 위와 동일하게 unpivot 해 준 다음 누적값을 구하고,

 unpivot_sessions의  date, country 를 키 값으로 조인해줍니다.