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

asusman님의 프로필 이미지
asusman

작성한 질문수

다양한 사례로 익히는 SQL 데이터 분석

일주일간 일별 잔존율 SQL로 구하기

일별 잔존율 SQL 로직에서 궁금증이 있습니다.

작성

·

271

1

안녕하세요.

강사님의 강의를 잘 듣고 있는 와중, 일별 잔존율 SQL문에서 궁금증이 생겼습니다.

 

SQL 로직을 보면 사용자 테이블과 세션 테이블을 left join 한 다음,

사용자 아이디, 생성일자, 방문일자로 그룹화하고,

다시 생성일자로 그룹화 한 후 생성일 기준 고유 사용자 수와 D+N 별 고유 사용자 수를 구하는 것으로 이해했습니다.

 

다만 세 컬럼으로 그룹화를 하게 되면,

 

아이디             생성일자             방문일자

U0179281    2016-10-24    2016-10-25
U0179281    2016-10-24    2016-10-26

와 같은 케이스가 나오게 되는데,

이를 다시 생성일자로 그룹화한 다음 count(*) 로 생성일 기준 모수를 구하게 되면 사용자 아이디는 중복으로 집계되는 것이 아닌지 궁금합니다.

생성일 기준 고유 사용자 수(모수)를 구하려면 10월 24일에 생성한 사용자 U0179281 1개만 집계되어야 하는게 아닌가 싶어 질문드립니다.

 

 

 

 

답변 3

3

저도 의아했는데 좋은 질문 감사합니다.

2

권 철민님의 프로필 이미지
권 철민
지식공유자

지적하신 대로 중복 건수를 배제해야 하는데 제가 실수 했군요. 

count(*) as cnt가 아니라 count(distinct a.user_id) as cnt가 되어야 합니다. 

말씀해주셔서 감사드리며, 강의 영상은 빨리 수정해야 하지만, 현재 다른 촉박한 일정으로 인해  8월 말까지 보완하도록 하겠습니다. 

감사합니다. 

2

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까, 

해당 로직은 시간을 가지고 제가 다시 한번 점검이 필요할 것 같습니다. 

제가 지금 휴가중이라 1~2일 중에 다시 답변 드리겠습니다. 

감사합니다. 

asusman님의 프로필 이미지
asusman

작성한 질문수

질문하기