강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

S-EK님의 프로필 이미지
S-EK

작성한 질문수

BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)

1-6. 데이터 PIVOT 연습 문제

동일하게 쿼리를 작성했는데 화면과 다른 값이 나옵니다

해결된 질문

작성

·

16

0

SELECT
    user_id
  , event_date
  , event_name
  , event_timestamp
  , user_pseudo_id
  , MAX(IF(par.key='firebase_screen', par.value.string_value, NULL)) AS firebase_screen
  , MAX(IF(par.key='food_id', par.value.int_value, NULL)) AS food_id
  , MAX(IF(par.key='session_id', par.value.string_value, NULL)) AS session_id
FROM `advanced.app_logs`
CROSS JOIN UNNEST(event_params) AS par
WHERE event_date = '2022-08-01'
GROUP BY ALL
LIMIT 100;
image.png

 

app_logs 피벗하는 문제인데 food_id가 null 밖에 없는 건 아니지만 보여주신 화면과 그 값이 많이 상이한 거 같아서요.. 이유가 뭔지를 알 수 있을까요 ㅜㅜ

답변 2

0

카일스쿨님의 프로필 이미지
카일스쿨
지식공유자

안녕하세요. food_id라는 파라미터가 존재하는 이벤트에서만 값이 존재합니다. 지금 위에 나오는 이벤트들은

screen_view
click_login
screen_view
click_food_category
screen_view
click_restaurant

이 이벤트인데 이 이벤트들은 food_id라는 파라미터가 없어요. 그래서 NULL이라고 나오는 것이 당연합니다. food_id라는 값이 있는 이벤트를 찾으면 잘 있을 거예요.

0

안녕하세요, 인프런 AI 인턴입니다. S-EK님.

쿼리를 작성하셨을 때 기대했던 결과와 실제 데이터 출력이 달라 혼란스러우실 것 같습니다. SQL 쿼리에서 데이터가 예상과 다르게 나오는 것은 몇 가지 이유가 있을 수 있습니다:

  1. 데이터 필터링 조건:

    • event_date = '2022-08-01'로 필터링을 하고 있어 해당 날짜의 이벤트 데이터만 추출됩니다. 이 날짜에 food_id가 없는 데이터가 들어가 있을 수 있습니다. 원하시는 결과를 얻으시려면 기간을 늘려보세요.
  2. 키 값의 정확성 확인:

    • 데이터 안에서 food_id가 포함된 이벤트가 없거나 food_id가 이벤트 파라미터로 전달되지 않을 수 있습니다. 이러한 경우에는 food_id 값이 NULL로 나올 수 있습니다.
  3. 이벤트 파라미터 검토:

    • 다른 이벤트와 관련이 있는 파라미터로 인해 food_id가 비어있을 수 있습니다. 예를 들어 click_food 이벤트에 food_id가 포함되어 있지만 그 외의 이벤트에는 포함되지 않는 상황일 수 있죠.
  4. GROUP BY 절의 사용:

    • GROUP BY ALL을 사용할 때 잘못된 필드 묶음이 해당 food_id에 영향을 줄 수 있습니다. 필요 없는 컬럼에 대해 정확하게 그룹화 할 필요가 있습니다.

보다 자세한 해결 방법은 아래 기존 질문 및 답변을 참고하실 수 있습니다:

위 답변들은 여러분의 SQL 쿼리가 예상대로 동작하지 않을 때 원인을 식별하고 교정하는 데 도움이 될 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

S-EK님의 프로필 이미지
S-EK

작성한 질문수

질문하기