본문 바로가기
728x90

전체 글348

데이터 분석을 위한 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.
데이터 분석을 위한 SQL 레시피 4장 공부 매출을 파악하기 위한 데이터 추출이동평균을 사용한 날짜별 추이 보기# 1.round(avg(sum(purchase_amount))) over(order by dt rows between 6 preceding and current row)# 2.round(avg(sum(purchase_amount)) over(order by dt rows between 6 preceding and current row))# -> 2번으로 해야함. (집계 함수는 중첩되어 호출 할 수 없음)1번으로 적어서 계속 오류를 찾아야 했다. 조심!select dt -- 이 날 매출 , sum(purchase_amount) as total_amount -- 최근 최대 7일 동안의 평균 계산 , round(avg(sum(purch.. 2024. 6. 11.
데이터 분석을 위한 SQL 레시피 3장 공부 데이터 가공을 위한 SQL현재 날짜와 타임스탬프 추출select current_date as dt, current_timestamp as stamp; 지정한 값의 날짜/시각 데이터 추출CAST( 칼럼명 AS 변환하고자 하는 타입)데이터 타입을 다른 형식으로 변환시켜 보여주도록 도와주는 타입 변환 함수select cast('2024-06-11' as date) as dt, cast('2024-06-11 00:09:48' as timestamp) as stamp; 날짜/시각에서 특정 필드 추출 extract('날짜요소' from 칼럼명) 날짜 유형의 데이터로부터 날짜 정보를 분리하여 새로운 컬럼의 형태로 추출해 주는 함수 select current_timestamp as stamp , extract(year.. 2024. 6. 11.
[프로그래머스] LV3. 대장균의 크기에 따라 분류하기 2 - MySQL https://school.programmers.co.kr/learn/courses/30/lessons/301649 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제대장균 개체의 크기를 내름차순으로 정렬했을 때 상위 0% ~ 25% 를 'CRITICAL', 26% ~ 50% 를 'HIGH', 51% ~ 75% 를 'MEDIUM', 76% ~ 100% 를 'LOW' 라고 분류합니다. 대장균 개체의 ID(ID) 와 분류된 이름(COLONY_NAME)을 출력하는 SQL 문을 작성 풀이1윈도우 함수인 ROW_NUMBER()를 활용하여 순위를 매기기 (이 순위는 오름.. 2024. 6. 10.
[프로그래머스] LV4. 우유와 요거트가 담긴 장바구니 - MySQL https://school.programmers.co.kr/learn/courses/30/lessons/62284 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성 풀이1WHERE 조건문을 통해 NAME컬럼에 'Milk'와 'Yogurt' 선택GROUP BY를 통해 중복 제거코드SELECT CART_IDFROM ( SELECT CART_ID, NAME FROM CART_PRODUCTS WHERE NAME IN ('Milk', 'Yogurt') .. 2024. 6. 9.
반응형