728x90 데이터 분석/SQL 분석10 데이터 분석을 위한 SQL 레시피 8장 공부 데이터를 무기로 삼기 위한 분석 기술검색 기능 평가하기검색 기능 개선 방법검색 키워드의 흔들림을 흡수할 수 있게 '동의어 사전 추가'하기흔들름 : 검색 엔진의 키워드를 설명할 때 역시 단어가 정확하지 않고 조금 떨리는 현상검색 키워드를 검색 엔진이 이해할 수 있게 '사용자 사전 추가'하기검색 결과가 사용자가 원하는 순서로 나오게 '정렬 순서 조정'하기 NoMatch 비율 집계NoMatch 비율검색 총 수 중에서 검색 결과를 0으로 리턴하는 검색 결과 비율select to_char(stamp, 'YYYY-MM-DD') AS dt , count(1) as search_count , sum(case when result_num = 0 then 1 else 0 end) as no_match_count , avg.. 2024. 6. 14. 데이터 분석을 위한 SQL 레시피 7장 공부 데이터 활용의 정밀도를 높이는 분석 기술세션별로 페이지 열람 수 랭킹 비율 구하기PERCENT_RANK의 값은 (rank - 1) / (전체수 - 1)with session_count as ( select session , count(1) as count from action_log_with_noise group by session)select session , count , rank() over(order by count desc) as rank , percent_rank() over(order by count desc) as percent_rankfrom session_count; 데이터 타당성 확인하기로그 데이터의 요건을 만족하는지 확인하는 쿼리select action -- session은 .. 2024. 6. 14. 데이터 분석을 위한 SQL 레시피 6장 공부 웹사이트에서의 행동을 파악하는 데이터를 추출URL 경로정규표현식substirng(url from '//[^/]+([^?#]+)// : URL에서 프로토콜의 끝 부분 다음에 오는 두 개의 슬래시를 찾기[^/]+ : 슬래시가 아닌 문자가 하나 이상 연속되는 부분을 찾기[^/] : /가 아닌 모든 문자+ : 플러스 기호는 앞의 패턴이 하나 이상 반복됨을 의미([^?#]+) : 물음표나 샵 기호가 아닌 문자가 하나 이상 연속되는 부분을 찾아 추출( ) : 괄호는 캡처 그룹을 나타내며, 이 그룹 안의 내용을 추출[^?#] : ?나 #이 아닌 모든 문자+ 예) " https://chaemi720.tistory.com/manage/newpost/376?type=post&return"-> /manage/newpost/.. 2024. 6. 13. RFM 분석 RFM 분석으로 사용자를 3가지 관점의 그룹으로 나누기RFMRecency : 최근 구매일최근 무언가를 구매한 사용자를 우량 고객으로 취급Frequency : 구매 횟수사용자가 구매한 횟수를 세고, 많을수록 우량 고객으로 취급Monetary : 구매 금액 합계사용자의 구매 금액 합계를 집계하고, 금액이 높을수록 우량 고객으로 취급즉, 사용자별로 얼마나 최근에, 얼마나 자주, 얼마나 많은 금액을 지출했는지에 따라 사용자들의 분포를 확인하거나 사용자 그룹(또는 등급)을 나누어 분류하는 분석 기법사용자별로 RFM을 집계하는 쿼리with purchase_log as ( select user_id , amount -- 날짜 , substring(stamp, 1, 10) as dt from action_log .. 2024. 6. 13. 데이터 분석을 위한 SQL 레시피 5장 공부 사용자를 파악하기 위한 데이터 추출유저가 특정 기간 동안 기능을 얼마나 사용하는지 집계 COUNT(*) == COUNT(1)-- 로그 전체의 유니크 사용자 수 구하기with stats as ( select count(distinct session) as total_uu from action_log )select l.action -- 액션 UU(unique users) , count(distinct l.session) as action_uu -- 액션 수 , count(1) as action_count -- 전체 UU , s.total_uu -- 사용률 , 100.0*count(distinct l.session) / s.total_uu as usage_rate -- 1인당 액션 수 , 1.0*count(1.. 2024. 6. 12. Z차트를 작성하는 SQL 쿼리 '데이터 분석을 위한 SQL 레시피' z차트'월차매출', '매출누계', '이동년계'라는 3개의 지표로 구성되어, 계절 변동의 영향을 배제하고 트렌드를 분석하는 방법'월차매출' : 매출 합계를 월별로 집계'매출누계' : 해당 월의 매출에 이전월까지의 매출 누계를 합한 값매출 일정 : 직선매출 상승 : 오른쪽으로 갈수록 기울기가 커지는 곡선매출 하락 : 오른쪽으로 갈수록 기울기가 완만한 곡선'이동년계' : 해당 월의 매출에 과거 11개월의 매출을 합한 것일별 매출을 집계하는 테이블(daily_purchase)-- 날짜별 매출 임시 테이블with daily_purchase as ( select dt -- 연, 월, 일 각각 추출 , substring(dt, 1, 4) as year , substring.. 2024. 6. 12. 이전 1 2 다음 반응형