| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- python
- 리텐션
- regexp
- Retention
- MYSQL
- 서브쿼리
- dense_rank
- 린분석
- 윈도우함수
- 프로그래머스
- LEFTJOIN
- row_number
- 독서
- rank
- 데이터리안
- leetcode
- SQL
- 취준
- SolveSQL
- 윈도우 함수
- 퍼널분석
- 누적합
- 데이터분석
- 신입 데이터분석가
- Datarian
- 그로스해킹
- advent of sql
- 순위함수
- funnel
- pandas
- Today
- Total
목록SQL (62)
데이터 분석
문제보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요. 참고 ) 중성화를 거치지 않은 동물은 성별 및 중성화 여부에 Intact, 중성화를 거친 동물은 Spayed 또는 Neutered라고 표시 sex_upon_intake/sex_upon_outcome중성화를 거치지 않은 경우 Intact 중성화 된 경우 Spayed 또는 Neutered 풀이 # (1)SELECT animal_id , animal_type , nameFROM animal_outsWHERE animal_id IN ( SELECT anim..
문제데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다. 먼저, CONCAT 함수와 CONCAT_WS 함수를 짚고 넘어가자. 이 두 string 함수의 공통점은 서로 다른 두 칼럼 값을 연결할 때 사용하기 유용하다는 점이다.한편, 차이점은 CONCAT_WS 함수는 Separator(구분자)를 인수에 명시적으로 지정할 수 있다는 것이다. SELECT CONCAT(NAME, PRICE) AS con1 , CONCAT(NAME, '-', PRICE) AS con2 , CONCAT_WS('', NA..
문제c) CAR_RENTAL_COMPANY_CAR 테이블과 h) CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 p) CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해서 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 대여 기록 ID를 기준으로 내림차순 정렬해주세요. 대여 금액은 '대여 기간'에 따라 차등적으로 계산된다.1) '대여 기간' = end_date - start_date + 12) 자동차 종류가 트럭인 경우, '7일 이상' - 5% 할인율 / '30일 이상..
문제CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬해주세요. 풀이 SELECT a.car_id ..
문제 입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해 주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다. 풀이(1)SELECT o.animal_id , o.nameFROM ANIMAL_INS i -- 동물 보호소에 들어온 동물 정보 테이블 LEFT JOIN ANIMAL_OUTS o ON i.animal_id = o.animal_id -- 동물 보호소에서 입양 보낸 동물 정보 테이블WHERE i.animal_id IS NOT NULL -- 입양을 간 동물들만 필터링ORDER BY DATEDIFF(o.datetime, i.datetime) DESC -- 얘를 별도 컬럼으로 만든 다음, WITH문으로 저장하고 최종 컬럼 조회할 ..
문제 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 2022년 10월 16일에 대여 중인 자동차인 경우 '대여중'이라고 표시하고, 대여 중이지 않은 자동차인 경우 '대여 가능'을 표시하는 컬럼(컬럼명: AVAILABILITY)을 추가하여 자동차 ID와 AVAILABILITY 리스트를 출력하는 SQL문을 작성해주세요. 이때 반납 날짜가 2022년 10월 16일인 경우에도 '대여중'으로 표시해 주시고 결과는 자동차 ID를 기준으로 내림차순 정렬해 주세요. 풀이 22년 10월 16일에 대여 중인 자동차인 경우가 어떤 경우일까?를 고려해서 CASE문을 다음과 같이 활용한다. # 1번 쿼리CASE WHEN start_date = '2022-10-16' THEN '대여중' E..
문제 대장균 개체의 ID와 자식의 수(CHILD_COUNT)를 출력하는 SQL 문을 작성해 주세요. 자식이 없다면 자식의 수는 0으로 출력하며, 개체의 ID에 대해 오름차순 정렬을 해 주세요. 풀이(1) 동일한 테이블을 조인(셀프 조인)하여 접근해 보자.SELECT e1.id , e2.parent_idFROM ECOLI_DATA e1 LEFT JOIN ECOLI_DATA e2 on e1.id= e2.parent_id 아래와 같은 결과가 반환된다. idparent_id1122223NULL445 NULL 6 NULL 위 테이블에서 id를 기준으로 parent_id의 개수를 집계한다면 대장균 개체의 ID와 자식의 수를 집계 가능하다.SELECT e1.id , COUNT(e2.pare..
문제대장균 개체의 크기를 내림차순으로 정렬했을 때 상위 0% ~ 25% 를 'CRITICAL', 26% ~ 50% 를 'HIGH', 51% ~ 75% 를 'MEDIUM', 76% ~ 100% 를 'LOW'라고 분류합니다. 대장균 개체의 ID(ID)와 분류된 이름(COLONY_NAME)을 출력하는 SQL 문을 작성해 주세요. 이때 결과는 개체의 ID에 대해 오름차순 정렬해 주세요. 단, 총 데이터의 수는 4의 배수이며 같은 사이즈의 대장균 개체가 서로 다른 이름으로 분류되는 경우는 없습니다. 📌 내 생각'같은 사이즈의 대장균 개체는 반드시 같은 이름으로 분류된다'는 조건이 있기 때문에, DENSE_RANK 함수는 정답으로 처리되지 않는다. 추가로 더 엄밀하게 생각해 보면, ROW_NUMBER 함수 또한 ..
문제 Write a solution to find the sum of amounts for odd and even transactions for each day. If there are no odd or even transactions for a specific date, display as 0. Return the result table ordered by transaction_date in ascending order. 💡각 일자별로 amount 값이 홀수인 경우의 합, 짝수인 경우의 합을 집계하는 문제 SolutionSELECT transaction_date , IFNULL(SUM(CASE WHEN MOD(amount, 2) != 0 THEN amount END), 0) AS odd_su..
문제 A subscription service wants to analyze user behavior patterns. The company offers a 7-day free trial, after which users can subscribe to a paid plan or cancel. Write a solution to:Find users who converted from free trial to paid subscriptionCalculate each user's average daily activity duration during their free trial period (rounded to 2 decimal places)Calculate each user's average daily ac..