분류 전체보기 (53) 썸네일형 리스트형 컨버티드: 마음을 훔치는 데이터분석의 기술 (3) 이번 주는 파트 3의 챕터 14,15,16,17을 읽었다! 그리고 삼주간의 챌린지도 끝난다 짝짝짝 끝까지 잘 왔군 ㅎㅎ Part 1. 발전 (어떻게 더 뛰어난 성과를 낼 것인가) ch 14. 어떻게든 문제를 해결해야 하는 당신에게 앞서 고객과의 관계의 중요성을 알았다. 하지만 회사에서 고작 작은 일부인 나는 앞으로 어떻게 변화를 가져올 수 있을 것인가? ch 15. 작은 것부터 시작하라 ‘이쑤시개 규정’이 비효율적이라 하더라도 아예 효과가 없었느냐? 그건 아니다. 중요한 것은 그것이다. 조금 더 나아지는 것! 완벽한 때는 오지 않는다. 작은 변화들이 모여 큰 변화를 이룬다. 스타트업의 장점은 부족함을 알고 이를 받아들인다는 것이다. (대기업은 기준이 더 높다 아무래도 잃을 게 많으니까 리스크를 감수하기 .. [PostgreSQL] (Medium) International Call Percentage [Verizon SQL Interview Question] 문제: https://datalemur.com/questions/international-call-percentage 나의 풀이: SELECT * FROM phone_calls c JOIN (SELECT caller_id , country_id AS caller_country FROM phone_info) i1 ON c.caller_id = i1.caller_id JOIN (SELECT caller_id AS receiver_id , country_id AS receiver_country FROM phone_info) i2 ON c.receiver_id = i2.receiver_id WHERE caller_country receiver_country; 발신자와 수신자의 국가를 조인하고 발신자와 수신자의 .. [MySQL] HackerRank - SQL Project Planning 문제: https://www.hackerrank.com/challenges/sql-projects/problem?isFullScreen=true 풀이 1: SELECT start_date , MIN(end_date) FROM (SELECT start_date FROM projects WHERE start_date NOT IN (SELECT end_date FROM projects)) A, (SELECT end_date FROM projects WHERE end_date NOT IN (SELECT start_date FROM projects)) B WHERE start_date < end_date GROUP BY start_date ORDER BY DATEDIFF(MIN(end_date), start_da.. 컨버티드: 마음을 훔치는 데이터분석의 기술 (2) 이번 주는 파트2의 챕터 8,9,12를 읽었다 Part 2. 관계 (어떻게 인간의 욕망을 움직일 것인가) ch8. 데이터로 현실을 파악하라 (고객생애가치 측정 방법) 고객생애가치 측정을 통해 고객 관계를 이해할 수 있음 고객 세분화를 통해 중요 고객을 구분함 어떤 집단이 있으며 집단별 어떤 특성이 있는지를 이해하고 중요 고객과 좋은 관계를 맺어야 함 여기서 고객생애가치 측정은.. 고객 과거 데이터(고유 아이디, 거래금액, 거래날짜 등)를 활용해서 예상 거래 수, 예상 거래 금액, 예상 거래 성사 확률, 고객생애가치 데이터를 생성한다.. 예상 데이터랑 고객생애가치 값을 생성하는 방법은 책에서 알려준 사이트에서 템플릿을 다운받아서 사용할 수 있다는데 내가 들어갔을 때는 유료 서비스 구독 페이지로 이어졌고 템.. [PostgreSQL] (Medium) Card Launch Success [JPMorgan Chase SQL Interview Question] 문제: https://datalemur.com/questions/card-launch-success 나의 풀이: SELECT card_name , issued_amount FROM ( SELECT * , ROW_NUMBER() OVER (PARTITION BY card_name ORDER BY issue_year, issue_month) AS rownum FROM monthly_cards_issued) sub WHERE rownum = 1 ORDER BY issued_amount DESC; 풀긴 했지만 뭔가.. 뭔가 찝찝한 느낌쓰 더 간단하게 풀 수 있을 것 같은데..? 솔루션을 보니 MAKE_DATE() 이라는 내가 모르는 함수를 사용했다 SELECT MAKE_DATE(issue_year, issue_.. [PostgreSQL] (Medium) Compressed Mode [Alibaba SQL Interview Question] 문제: https://datalemur.com/questions/alibaba-compressed-mode 나의 풀이: DENSE_RANK() 사용 SELECT item_count AS mode FROM ( SELECT * , DENSE_RANK() OVER(ORDER BY order_occurrences DESC) AS ranking FROM items_per_order) sub WHERE ranking = 1 ORDER BY 1; 오늘것도 쉽다! 하고 풀었는데 솔루션 보니까 또 다른 풀이가 있다 첫번째는 MAX() 쓰는 방법 SELECT item_count AS mode FROM items_per_order WHERE order_occurrences = ( SELECT MAX(order_occurre.. [PostgreSQL] (Medium) Histogram of Users and Purchases [Walmart SQL Interview Question] 문제: https://datalemur.com/questions/histogram-users-purchases 나의 풀이: 웨어 조건절에 서브쿼리 쓰기 SELECT transaction_date , user_id , COUNT(*) AS purchase_count FROM user_transactions WHERE (transaction_date, user_id) IN ( SELECT MAX(transaction_date) AS transaction_date , user_id FROM user_transactions GROUP BY user_id) GROUP BY user_id, transaction_date ORDER BY 1; 솔루션: 랭크 윈도우 함수 사용 및 위드문 사용 WITH tb AS ( S.. [PostgreSQL] (Medium) Odd and Even Measurements [Google SQL Interview Question] 문제: https://datalemur.com/questions/odd-even-measurements 나의 풀이 는 없다! 마이에스큐엘이었으면 풀 수 있었을 것 같은데 포스트그레는 날짜 추출 부분 문법이 달라가지구.. 어떻게 하나 찾아봤더니! SELECT measurement_day , SUM(measurement_value) FILTER (WHERE rnum % 2 != 0) AS odd_sum , SUM(measurement_value) FILTER (WHERE rnum % 2 = 0) AS even_sum FROM ( SELECT CAST(measurement_time AS DATE) AS measurement_day , measurement_value , ROW_NUMBER() OVER ( PA.. 이전 1 2 3 4 5 6 7 다음