인프런 커뮤니티 질문&답변
동일하게 쿼리를 작성했는데 화면과 다른 값이 나옵니다
해결된 질문
작성
·
15
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;
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 쿼리에서 데이터가 예상과 다르게 나오는 것은 몇 가지 이유가 있을 수 있습니다:
데이터 필터링 조건:
event_date = '2022-08-01'로 필터링을 하고 있어 해당 날짜의 이벤트 데이터만 추출됩니다. 이 날짜에food_id가 없는 데이터가 들어가 있을 수 있습니다. 원하시는 결과를 얻으시려면 기간을 늘려보세요.
키 값의 정확성 확인:
- 데이터 안에서
food_id가 포함된 이벤트가 없거나food_id가 이벤트 파라미터로 전달되지 않을 수 있습니다. 이러한 경우에는food_id값이 NULL로 나올 수 있습니다.
- 데이터 안에서
이벤트 파라미터 검토:
- 다른 이벤트와 관련이 있는 파라미터로 인해
food_id가 비어있을 수 있습니다. 예를 들어click_food이벤트에food_id가 포함되어 있지만 그 외의 이벤트에는 포함되지 않는 상황일 수 있죠.
- 다른 이벤트와 관련이 있는 파라미터로 인해
GROUP BY 절의 사용:
GROUP BY ALL을 사용할 때 잘못된 필드 묶음이 해당food_id에 영향을 줄 수 있습니다. 필요 없는 컬럼에 대해 정확하게 그룹화 할 필요가 있습니다.
보다 자세한 해결 방법은 아래 기존 질문 및 답변을 참고하실 수 있습니다:
위 답변들은 여러분의 SQL 쿼리가 예상대로 동작하지 않을 때 원인을 식별하고 교정하는 데 도움이 될 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





