비밀번호

커뮤니티2

BigQuery활용[BigQuery&GA360]빅쿼리 커뮤니티입니다.

[Big Query] 빅쿼리 쿼리문 실습 - 아이템 정보 추출

안녕하세요, 빅 쿼리 쿼리문 실습한 내용을 정리해보도록 하겠습니다. 틀린 부분이 있어도 양해부탁드리고 잘 알려주시면 감사하겠습니다.

 

쿼리문을 이용하여 아이템 id, 아이템 이름, 아이템 브랜드, 아이템 옵션, 아이템 카테고리, 가격, 해당 아이템이 팔린 총 개수, 해당 아이템으로 얻은 총 수익을 구해보겠습니다. 해당 실습에서 사용한 테이블은 구글에서 제공하는 실습용 더미 테이블입니다.

 

 

해당하는 쿼리문은 이것인데요, 쿼리를 하나씩 살펴보겠습니다.

 

우선 select 문에 결과 테이블에서 확인하고 싶은 정보를 가진 필드 이름을 넣습니다. 여기서 입력한 필드 이름은 각각 앞서 말한 우리가 구하고자 하는 정보의 컬럼명입니다. 각 필드 이름이 무슨 요소를 나타내는지는 빅쿼리 스키마 구조 도움말에서 확인할 수 있습니다. (링크 참조)

https://support.google.com/analytics/answer/7029846?hl=ko&ref_topic=9359001&sjid=2127074285611473672-AP#zippy=%2Citems

또한 집계함수 sum을 사용하였는데요, 해당 함수는 필드의 총합을 구해서 나타내는 함수입니다. 위의 쿼리에서는 quantity와 item_revenue의 총합을 나타내고 있습니다.

 

다음은 from 문입니다. 무슨 테이블에서 이 요소들을 select 하여 보일것인지 명시하는것인데요. 여기서 사용한 unnest() 함수는  ARRAY 를 일련의 행으로 변환하는 함수입니다. 이를 평면화라고 부릅니다. 평면화를 통해 배열화 되어있는 필드에 접근할수 있게 됩니다.

 

그 다음은 where 문입니다. 조건을 걸어 해당 조건에 맞는 결과만 볼수 있도록 하는 역할입니다. and / or 을 사용할수 있습니다. 한가지 유의하여야 하는 것은 'null일 경우', 혹은 'null이 아닐 경우'를 조건으로 사용하고 싶다면 =, != 연산자가 아니라 is null, is not null을 사용하여야 한다는 것입니다. 위의 쿼리에서는 이벤트 이름이 'purchase'이고 아이템 id가 null 과 not set이 아닐 경우의 결과를 보려하고 있습니다.

 

다음은 group by 절입니다. select 문에서 집계함수 sum을 사용하였는데요, 집계함수를 사용하려면 반드시 group by 절을 사용해주어야합니다. 집계함수를 무엇을 기준으로 사용하는지 명시해주는 역할을 하기 때문입니다. 따라서 위의 쿼리에서는 아이템 id, 아이템 이름, 아이템 브랜드, 아이템 옵션, 아이템 카테고리, 가격을 기준으로 (즉, 이 모든 항목들의 값이 같은 로우들) quantity와 item_revenue의 총합을 보이고 있는것입니다. 

 

마지막으로 order by 절입니다. 이는 결과 테이블을 정렬하는 역할을 합니다. 아이템 id의 오름차순으로 결과 테이블을 정렬해줍니다. 

 


해당 쿼리의 실행결과입니다.

 

감사합니다.

 

 

  

 

전체댓글0

1