해결된 질문
작성
·
18
·
수정됨
0
array, struct 연습문제 4번에 대한 질문입니다.
위 사진처럼 카일스쿨님과 동일한 쿼리를 작성했는데, 출력 결과가 다르게 나와서 문의드립니다.
질문1:
사진에 보시듯이 user_id 컬럼에 NULL이 들어간 행들이 있는데, 제가 뭔가 잘못한 걸까요? 만약 NULL이 나오는 게 정상이라면 그 이유도 궁금합니다!
질문2:
만약 NULL이 나오는 게 정상이라면, 실무에서도 이렇게 id 컬럼에 null이 허용되는지 궁금합니다. 보통 이런 id 값은 primary key로 쓰는 줄 알았어서요..!
질문3:
연습문제 뒤에 추가로 COUNT 출력해보는 것도 결과(cnt)가 다른데, 이것도 정상인지 확인부탁드립니다. 혹시 카일스쿨님이 강의 찍으실 때 쓰신 데이터셋과 변동사항이 있나요?
답변 2
0
안녕하세요! 연휴에 열심히 학습하고 계시네요. 답변 드려볼게요
질문1:
사진에 보시듯이 user_id 컬럼에 NULL이 들어간 행들이 있는데, 제가 뭔가 잘못한 걸까요? 만약 NULL이 나오는 게 정상이라면 그 이유도 궁금합니다!
네 이 부분은 정상입니다. 빅쿼리는 쿼리를 실행할 때, 사람마다 다른 결과를 나올 수 있어요. 현재 쿼리를 집계하거나 하지 않고 SELECT를 했기 때문에 다를 수 있지만 데이터는 동일할 거예요.
질문2:
만약 NULL이 나오는 게 정상이라면, 실무에서도 이렇게 id 컬럼에 null이 허용되는지 궁금합니다. 보통 이런 id 값은 primary key로 쓰는 줄 알았어서요..!
우선 데이터베이스의 DB의 데이터와 앱 로그에 대한 특성을 이해해야 합니다.
아시는 pk 개념은 데이터베이스의 DB에서 나온 개념이고, 로그 데이터는 유저의 흐름 관점이라 다를 수 있습니다
우리가 어떤 서비스에 접속할 때(웹이나 앱이나) 로그인을 하지 않은 경우엔 앱에서 user_id를 알 수 없습니다. 그래서 user_id가 그 시점에는 NULL입니다. 지금 NULL은 그런 케이스라고 생각하시면 되고, 파라미터를 잘 보시면 welcome 페이지에 접근한 케이스라서(환영 페이지 = 아직 로그인을 안함) 그렇게 나옵니다
이 부분은 1-8. 퍼널의 정의, 종류, 집계 방법 강의에서 다루고 있어요. 유저를 어떤 기준으로 집계할 것이냐 관점으로 나옵니다. 이 부분 보시면 이해가 되실 것 같습니다!
질문3:
연습문제 뒤에 추가로 COUNT 출력해보는 것도 결과(cnt)가 다른데, 이것도 정상인지 확인부탁드립니다. 혹시 카일스쿨님이 강의 찍으실 때 쓰신 데이터셋과 변동사항이 있나요?
데이터는 달라지지 않았습니다. 쿼리를 보니까, 저는 영상에서 DISTINCT를 사용했고, a01042338414님은 DISTINCT가 없이 집계를 해서 이벤트 발생 횟수를 COUNT한 것입니다. DISTINCT를 넣으시면 같게 나올 거예요.
12. 1-4. ARRAY, STRUCT 연습 문제(4번) 9분 33초
0
안녕하세요, 인프런 AI 인턴입니다. a01042338414님.
강의에서 보여드린 쿼리와 다른 결과가 나와서 많이 혼란스러우셨을 것 같습니다.
user_id
컬럼에 NULL이 나오는 이유데이터 구조 및 형태:
CROSS JOIN UNNEST
를 활용하여 event_params
배열의 값을 확장하고 있습니다. 어떤 이벤트는 user_id
없이 기록될 수도 있으며, 이는 데이터 수집 방식 또는 특정 로그에서 user_id
가 포함되지 않았기 때문일 수 있습니다.데이터 필터링:
event_date
의 필터, 혹은 다른 필터 기준이 적용되어 특정 레코드에 user_id
가 없는 결과일 수 있습니다. 데이터 수집 설정에 따라 NULL값이 있는 레코드가 출현할 수 있습니다.user_id
와 같은 식별자는 보통 NULL이 허용되지 않고, Primary Key
로 사용됩니다. 다만, log
데이터셋은 user_id
나 다른 필드가 반드시 필요하지 않은 경우도 있습니다.이 상황에 대해 더 알아보시려면 아래 유사한 질문과 해결 링크도 참조해보세요:
이 질문에서 원하신 내용이 잘 설명되어 있으면 좋겠습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
연휴에도 빠르게 답변 주셔서 감사합니다ㅠㅠ 남은 파트도 열심히 학습해보겠습니다!!