Language/SQL

· Language/SQL
1. 주말과 공휴일 판단하기 일반적인 서비스는 주말과 공휴일에 방문 횟수와 CV가 늘어난다. 따라서 월별로 목표를 세울 때, 해당 연도와 해당 월에 있는 주말과 공휴일이 얼마나 되는지 계산하면 더 정확한 목표를 세울 수 있다. 이번 절에서는 로그 데이터가 주말과 공휴일에 기록된 것인지 판정하는 방법을 알아보겠다. 다음 코드는 읽어 들인 데이터들을 기반으로 주말과 공휴일을 판정하는 쿼리이다. 전처리를 생략하고 JOIN 조건으로 곧바로 날짜를 결합하는데, 실제 운용할 때는 퍼포먼스를 위해 미리 날짜 전용 컬럼을 만들어두는 것이 좋다. select a.action , a.stamp , c.dow , c.holiday_name --주말과 공휴일 판정 , c.dow_num in (0,6) -- 토요일과 일요일 판..
· Language/SQL
이번 절에서는 마스터 데이터 또는 로그 데이터의 중복을 확인하고 중복 데이터를 제외하는 방법을 소개합니다. 이 방법을 통해 데이터 활용의 정밀도를 높일 수 있습니다. 1. 마스터 데이터의 중복 검출하기 마스터 데이터에 중복이 존재하는 경우, 마스터 데이터를 로그 데이터와 결합하면 로그가 여러 레코드로 카운팅되어 잘못된 분석 결과가 나올 수 있다. 따라서 중복이 없도록 해야 한다. 다음, 데이터의 중복을 확인해보는 방법을 알아보겠다. 1) 키가 중복되는 데이터 존재 확인하기 마스터 데이터의 레코드에 중복이 발생했다면 여러가지 이유가 존재하는데 다음과 같다. 데이터를 로드할 때 실수로 여러 번 로드되어 같은 데이터를 가진 레코드가 중복 생성된 경우 마스터 데이터의 값을 갱신할 때 문제가 발생해서, 오래된 데..
· Language/SQL
계속해서 18강의 3절, 데이터 타당성 확인하기 쿼리를 살펴보겠다. 3) 데이터 타당성 확인하기 사용자 로그 데이터를 사용해 분석할 경우, 원래의 로그 데이터에 결손 또는 오류가 있다면 제대로 분석할 수 없다. 따라서 이번 절에서 액션 로그 데이터의 타당성을 확인하는 방법을 알아보겠다. 코드에서는 액션들을 GROUP BY로 집약해서 액션 또는 사용자 ID 등의 컬럼이 만족해야 하는 요건을 CASE 식으로 판정하였다. 이러한 컬럼의 요건을 만족하면 CASE 식의 값은 1이 되며, 만족하지 않는다면 0이 된다. 이러한 CASE 식의 값을 AVG 함수로 집약해서 로그 데이터 전체의 조건 만족 비율을 계산한다. select action --session은 반드시 null이 아니어야 함 ,avg(case when..
· Language/SQL
데이터 분석을 진행할 때는 데이터의 정합성이 보장되어야 한다. 하지만, 실제 데이터를 보면 누락되거나 노이즈가 섞인 경우가 꽤 많이 나타난다. 다음으로 웹사이트의 접근 로그를 기반으로 노이즈 등의 이상값을 검출해서, 데이터 분석의 전제라고 할 수 있는 '데이터 클렌징 방법'을 소개하겠습니다. 1. 데이터 분산 계산하기 로그 데이터에서 이상값을 검출하는 가장 기본적인 방법 => 데이터의 분산을 계산하고 분산에서 많이 벗어난 값을 찾는 것이다. 1) 세션별로 페이지 열람 수 랭킹 비율 구하기 다음 코드는 세션별로 페이지 조회 수를 집계하고, PERCENT_RANK함수를 사용해 페이지 조회수 랭킹을 비율로 구하는 쿼리이다. with session_count as( select session , count(1)..
송 이
'Language/SQL' 카테고리의 글 목록 (2 Page)