데이터 스터디/SQL 7

[SQL 케이스 스터디] 유저 인게이지먼트 하락 원인 찾기 - Drop in Engagement

가상 비즈니스 시나리오📌 Yammer 회사는 소셜 네트워크 (SNS) 를 주축으로 하는 회사로, 문서 공유, 채팅, 글 포스팅 등을 주고 받는 커뮤니티 기반 회사이다. 해당 회사의 Analyst로서 당면한 비즈니스 문제를 해결하는 것이 우리의 임무 !!Mission. WAU 하락 원인을 찾아오시오!문제 상황문제 : 7월 28일 (1442) → 8월 4일 WAU (1266)로 직전주 대비 12.21% 하락한 상황*WAU : the number of users who logged at least one engagement event during the week starting on that date. 즉, 1주일 내 한번이라도 플랫폼에 로그인한 유저 수SELECT DATE_TRUNC('week', e.oc..

[SQL 케이스 스터디] #1. Danny's Diner

SQL을 사용해 케이스 분석을 해보고 싶으신 분들이 많을 것 같습니다. 저도 SQL을 처음 배울 당시 정말 많은 사이트를 돌아다녔는데요, 그 중 가장 도움을 많이 주었던  https://8weeksqlchallenge.com 을 소개드립니다. 해당 사이트에는 총 8가지 비즈니스 시나리오가 기재되어있고, 각 비즈니스 상황에 맞는 지표(ex. 방문자수, 매출, 이탈율, 리텐션)를 뽑아보실 수 있습니다. 또한 사이트 내에 바로 SQL문을 짤 수 있는 툴이 제공되어 있어 별도로 환경을 설치하지 않으셔도 됩니다 ㅎㅎ  한 2년 전에 케이스1~3을 완료했었는데, 오랜만에 생각이 나 케이스8까지 차근차근 기록해보고자 합니다. Case Study #1 - Danny's Diner 🍜IntroductionDanny s..

[programmers] SQL 고득점 Kit - JOIN

이번에는 다섯번째 파트, join이다 # 5월 식품들의 총 매출 조회하기 FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요. SELECT P.PRODUCT_ID, P.PRODUCT_NAME, SUM(P.PRICE * O.AMOUNT) AS TOTAL_SALES FROM FOOD_PRODUCT AS P INNER JOIN FOOD_ORDER AS O ON P.PRODUCT_ID = O.PRODUCT_ID WHERE DATE_FORMAT(O.PRODUCE_DATE, '%Y-%m') = '2..

[programmers] SQL 고득점 Kit - NOT NULL

이번엔 not null 파트다. # NULL 처리하기 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시해 주세요. SELECT ANIMAL_TYPE, IF(NAME IS NULL, 'No name', NAME) AS NAME , SEX_UPON_INTAKE FROM ANIMAL_INS SELECT ANIMAL_TYPE, case when NAME IS NULL then 'No name' else NAME end as NAME, SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID - if문으로 넣어..

[programmers] SQL 고득점 Kit - SUM, MAX, MIN

두번째 파트인 SUM, MAX, MIN이다. # 최대값 구하기 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요. select DATETIME from ANIMAL_INS order by DATETIME desc limit 1 select max(DATETIME) from ANIMAL_INS - order by 한 다음에, limit해서 가장 위에 있는 애로 구하거나 - 바로 max함수를 써서 구하거나 # 중복 제거하기 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다. SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS where NAME I..

[programmers] SQL 고득점 Kit - Select문

예전에 sql코테 준비할 시기에 프로그래머스 sql키트로 많이 공부했었다. 지금은 계속 파이썬으로만 하다보니 감을 잃어서 .. 키트 문법 정리하면서 다시 감 찾아보려고 정리 ! # 아픈 동물 찾기 ANIMALS_INS 테이블에서 동물 보호소에 들어온 동물 중 아픈 동물의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요. SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION = 'Sick' - 데이터 추출은 select문을 사용하면 된다. - 이때 AS를 활용해 컬럼명을 다르게 설정할 수 있다. # 3월에 태어난 여성 회원 목록 출력하기 MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID,..