분류 전체보기 167

[리트코드] 3521. Find Product Recommendation Pairs

join만 잘해주면 그 이후부턴,, 문제 없는 쉽지만 생각을 잘 해야하는 문제! 먼저 셀프조인으로 user_id 기준으로 결합하되 product_id 이 과정이 나에게 꽤나 어려웠다. 그 이후에는 productInfo 조인을 통해 카테고리 이름을 결합해주면 끝이다. ** count >= 3 이상인 조건도 필수적으로 having 에 넣어준다! ** # Write your MySQL query statement belowselect pp1.product_id as product1_id , pp2.product_id as product2_id , pin_1.category as product1_category , pin_2.category as product2..

[solvesql] 온라인 쇼핑몰의 Stickiness

구해야하는 컬럼은 dt , dau , wau , dau/wau 지표. wau 를 구하는 방식에서 JOIN 이 머릿속에서 구조화가 되지 않아서 너무 힘들었기에 다시 한번 정리한다.  1. 먼저 11월 한달간의 dau를 구하는것은 너무나도 쉽다. 2. 그러나 , wau 를 구하려면 dt 기준에서 7일간의 dt 를 JOIN 을 해야하는데  먼저 정답인 쿼리는 select dt ,dau ,wau ,round(dau/wau,2) as stickinessfrom ( select d.order_date as dt , count(distinct d.customer_id) as dau , count(distinct w.customer_id) as wau from r..

PERCENT_RANK()

PERCENT_RANK() 는 주어진 값이 데이터 세트 내에서 어느 위치에 해당하는지 백분위로 계산하는 윈도우 함수이다. 해커랭크에서 중위값을 계산할때 median 함수가 없는 MYSQL 내에서 사용하기 좋다. 주로 순위 랭크함수와 관련된 계산에서 사용되고 데이터 분포를 기반으로 상대적인 순위를 제공한다.  PERCENT_RANK() OVER (ORDER BY column_name) 1. 특정 열에 대해 상대적 백분위 순위 계산2. ORDER BY 사용이 중요하다! 백분위 계산의 기준이 되는 열을 지정하기 때문3. 0-1 사이의 값으로 결과가 나타나고 해당 값이 데이터 집합 내에서 상대적으로 몇 번째 위치에 있는지 나타낸다.   해커랭크의 아래 문제에서 사용된 PERCENT_RANK()Weather Ob..

[해커랭크] New Companies

[문제상황]많은 테이블이 주어졌지만, 사실상 필요한 테이블은 Company 테이블과 Employee 테이블이다. - founder 컬럼이 필요하기 때문에 두 테이블을 JOIN 했다.  회사, Founder 이름을 기준으로 묶어서 집계하는 것이 해답!  SELECT c.company_code , c.founder, count(DISTINCT lead_manager_code), count(DISTINCT senior_manager_code), count(DISTINCT manager_code), count(DISTINCT employee_code)FROM Employee e JOIN Company c ON e.company_code = c.com..

[프로그래머스] 오프라인/온라인 판매 데이터 통합하기

문제상황은 ONLINE과 OFFLINE 의 데이터를 합치는 것인데 JOIN 으로 해결되는 문제가 아니기 때문에 UNION 을 쓴다. 문제 고려 사항은 - 각각의 테이블 3월 데이터로 1차 필터링 할 것 - OFFLINE 테이블엔 USER_ID 가 없으므로 NULL로 지정하고 하나의 열을 만들어줄 것  처음에는 UNION 뒤에 판매날짜와 PRODUCT_ID 로 그룹화해서 집계를 하는 것인가 했는데, 아니었다. 그냥 합치면 되는 것... 결국 UNION을 쓰는 것에 대해 물어본 것이었음..  SELECT DATE_FORMAT(SALES_DATE ,'%Y-%m-%d') as SALES_DATE , PRODUCT_ID , USER_ID , SALES_AMOUNT FROM ONLINE_SALE..

통계적 유의성에 대하여

행동데이터 분석이라는 책에 대해 독학을 진행하며 통계적 유의성에 대해 조금 더 공부해보고자 한다.  책 p171 페이지에서 *** 통계적 유의성 *** 왜 통계적 유의성에 너무 많은 관심을 두지 말아야 하는가? 0.05 임계값을 일종의 엄격한 진리와 같이 생각하고 사용해서는 안된다. 계수가 얼마나 중요한가에 따라 판단해야 합니다. 확실하지 않은 경우에는 항상 계수가 실제로 강력하고 통계적으로 유의미한 것처럼 취급할 수 있습니다. 통계적 유의성을 고려하기 위해서는 약간의 추가 작업이 필요하지만 이것 때문에 분석이 편향되지는 않습니다.  왜 통계적 유의성 (p값 기본적으로 0.05는 인위적인 경계일 뿐이다. - 0.05는 전통적으로 정해진 임계값일 뿐 , 어떤 절대적인 진실을 말해주는 수치는 아니다.- 예를..

statistics 2025.03.13

[해커랭크] Binary Tree nodes

[문제] 바이너리 노드의 각 상태에 대한 쿼리를 작성하는 것 [풀이과정]N이 P 의 원소 중 하나에 포함되고 P가 null 일때는 'Root'를 나타낸다.N이 P 의 원소 중 하나에 포함되고 P가 null이 아닐 경우 'Inner'를 나타낸다.N이 P 의 원소 중 하나에 포함되지 않으면 'Leaf' 이를 코드로 구현하면 select N , case when N in (select distinct P from BST) and P is null then 'Root' when N in (select distinct P from BST) and P is not null then 'Inner' else 'Leaf' end as positionfrom BSTorder by N 이렇게..

카테고리 없음 2025.03.03

[리트코드] 1174. Immediate Food Delivery II

sql 코딩테스트는 어디서도 떨어지기 싫다는 목표로,, 매일 easy 든 medium이든 high 든 풀고있다. [풀이과정] 정리하자면 문제에서 요구하는 바는 첫주문이면서,customer_pref_delivery_date 와 첫주문 일자가 같은 Customer_id를 찾은 후  찾은 customer_id /전체 customer_id * 100 을 해주면 된다고 이해했다.  [맞춘 정답 코드]with sub_t as ( select customer_id , order_date , customer_pref_delivery_date , case when t.rk = 1 then 1 else 0 end as first_order , case when t..