본문 바로가기
  • 공부한 것들과 여러가지를 기록해요

SQL/[책] 데이터 분석을 위한 SQL 레시피9

[데이터 분석을 위한 SQL 레시피] 19강 - 데이터 중복 검출하기 RDB는 적절하게 유니크 키를 설정한다면, 키가 중복되었을 때 자동으로 오류가 발생하여 데이터 무결성이 보장됨 하지만 RDB가 아닌 데이터베이스(Hive, BigQuery)에서는 중복을 사전에 확인하는 기능이 없음 데이터가 많으면 중복을 눈으로 하나하나 확인하는 건 불가능하기 때문에, 중복 데이터 확인 및 제외 방법을 알아야함 1. 마스터 데이터의 중복 검출하기 - 마스터 데이터에 중복이 존재한다면? : 마스터 데이터를 로그 데이터와 결합할 때 로그가 여러 레코드로 카운팅 되어 결과가 이상해짐 몇가지 이유 - 데이터 로드할 때 여러번 로드한 경우 - 마스터 데이터를 갱신할 때, 오래된 데이터와 새로운 데이터가 서로 다른 레코드로 분리된 경우 - 운용상의 실수로 같은 ID를 다른 데이터에 재사용한 경우 -.. 2023. 11. 20.
[데이터 분석을 위한 SQL 레시피] 15강 - 사이트 내의 사용자 행동 파악하기 웹사이트에서의 특징적인 지표 - 방문자 수 - 방문 횟수 - 직귀율 - 이탈률 1. 입구 페이지와 출구 페이지 파악하기 입구 페이지 - 사이트 방문했을 때 처음 접근한 페이지(랜딩 페이지) 출구 페이지 - 마지막으로 접근한 페이지(이탈 페이지) 코드 15-1 - FIRST_VALUE, LAST_VALUE : 첫번째 값을 가져오기 ex) FIRST_VALUE(path) : path열의 첫번째 값으로 landing 열을 구성 - partition by - rows between unbounded preceding(처음), following(끝) 코드 15-2 입구,출구 페이지의 방문횟수 집계 어떤 페이지에서 조회하기 시작해서 어디서 이탈하는지도 파악해야됨! 코드 15-3 세션별로 입구 페이지와 출구 페이지의.. 2023. 11. 6.
[데이터 분석을 위한 SQL 레시피] 12강 - 시계열에 따른 사용자 전체의 상태 변화 찾기 사용자는 서비스 사용 시작일로부터 시간이 지나면 상태 변화가 일어남 - 충성도 높은 사용자로 성장 - 사용을 중지 - 가입은 되어 있지만 사용하지 않는 상태(휴면) 서비스 운영자 입장에서는? - 사용자가 계속해서 사용하도록 해야함 -> 사용자가 어느 정도 계속해서 사용하는 지 파악 -> 사용자의 서비스 사용을 시계열로 수치화하고 변화를 시각화 - 휴면 사용자를 어떻게 하면 다시 사용하게 만들지 생각 - >메일 매거진/CM/광고 - 완전 탈퇴 사용자는 대책을 적용하기 어려움 1. 등록 수의 추이와 경향 보기 - 사용자 등록이 필요한 서비스에서 등록 수는 중요한 지표 등록자 감소 경향 -> 서비스 활성화하기 어려워짐 등록자 증가 경향 -> 사용자가 서비스에서 이탈할지 아닐지를 분석해서 서비스 활성화와 연결해.. 2023. 10. 7.
[데이터 분석을 위한 SQL 레시피] 11강 - 사용자 전체의 특징과 경향 찾기 사용자를 위한 서비스를 제공할 때 사용자와 관련된 정보로 알고 싶은 것은?- 사용자의 속성(나이, 성별, 주소) : 마스터 테이블- 사용자의 행동(구매 상품, 빈도) : 액션 로그 테이블 어떤 속성의 사용자가 사용하는지 or 사용자가 어떻게 사용하는 지 알 수 있어야 함  1. 사용자의 액션 수 집계하기UU : Unique User, 중복 없이 집계된 사용자 수사용률(usage_Rate) : 특정 액션 UU를 전체 액션 UU로 나눈 것 with stats as( select count(distinct session) as total_uu from action_log)select l.action ,count(distinct l.session) as action_uu ,count(*) as action_co.. 2023. 10. 2.
[데이터 분석을 위한 SQL 레시피] 8강 - 여러 개의 테이블 조작하기 2023. 9. 17.
[데이터 분석을 위한 SQL 레시피] 7강 - 하나의 테이블에 대한 조작 5,6 강에서는 레코드 하나하나를 조작했지만 실무에서는 대량의 레코드를 처리해야함. 대량의 데이터 집계가 필요하고, 지표를 사용해 데이터 전체의 특징을 파악해야함 테이블의 데이터를 집약하고, 테이블의 형식이 집계에 적합하지 않은 경우 테이블을 가공해야함 윈도우 함수 1. 그룹의 특징 잡기 SELECT COUNT(*) AS total_count, COUNT(DISTINCT user_id) as user_count, sum(score) as sum, avg(score) as avg, max(score) as max from review; count, sum, avg, max, min 등 다양한 집계 함수로 컬럼( or 그룹)의 특징을 잡을 수 있음 distinct : nunique group by 사용시 주.. 2023. 9. 17.