일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- With
- 데이터리안
- 윈도우함수
- levle1
- 데이터분석
- 프로그래머스
- 위키독스
- SQL고득점KIT
- 파이썬
- 코테
- mysql
- 문풀
- 약수구하기
- SQL
- 코딩테스트
- UNION
- 서브쿼리
- with절
- join
- sql문풀
- 프로그래머스문풀
- GROUPBY
- 파이썬문풀
- 리트코드sql
- 셀프조인
- leetcodesql50
- leetcode
- SQL테스트
- leetcode문풀
- 활성사용자수
- Today
- Total
목록서브쿼리 (12)
꿈은 데이터분석가, 취미는 계획
출처: [Leetcode - 1070. Product Sales Analysis III] 문제(일부): 제품별로 첫번째로 구매된 해의 정보 조회하기1. WITH 절 + INNER JOIN 1) WITH절에서 제품별 최초로 판매된 해를 추출2) 원본 테이블과 join, product_id와 year가 일치하는 조건# 제품별로 판매된 첫 해를 추출WITH first_year AS ( SELECT product_id, MIN(year) AS first_year FROM sales GROUP BY product_id)# 원본테이블과 join하여 첫해의 정보를 조회SELECT s.product_id ,s.year AS first_year ,s.quantity ..
출처: [Leetcode - SQL50] : 1934 Confirmation Rate링크: https://leetcode.com/problems/confirmation-rate/description/?envType=study-plan-v2&envId=top-sql-50문제(일부): 사용자가 받은 메세지 중 'confirmed'라고 응답한 비율 구하기1. WITH절, 서브쿼리 활용쿼리는 길어지지만 가장 먼저 생각난 단순한 방법1) user_id별로 confirm 메세지의 수 => 서브쿼리2) user_id별로 받은 메세지의 수 => 서브쿼리3) 메인 쿼리에서 user_id별로 confirm메세지의 비율 구하기(confrim / all)4) 위 내용을 WITH절로 임시 테이블 생성, signips테이블과 ..
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] : 그룹별 조건에 맞는 식당 목록 출력하기링크: https://school.programmers.co.kr/learn/courses/30/lessons/299305문제(일부): 대장균 개체의 ID와 자식의 수를 출력하는 쿼리 작성, 자식이 없다면 0으로 출력1. SELF JOIN 사용하기1) 동일한 테이블을 다른 별칭을 주어서 사용하는 SELF JOIN사용2) JOIN 조건으로 e1테이블의 ID = e2테이블의 PARENT_ID, 해당 ID를 부모로 가지는 자식을 JOIN3) LEFT를 사용하여 자식이 없어도 조회되도록 함SELECT e1.ID, COUNT(e2.PARENT_ID) AS CHILD_COUNTFROM ECOLI_DATA..
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] : 멸종위기의 대장균 찾기링크: https://school.programmers.co.kr/learn/courses/30/lessons/301651문제(일부): 세대별로 자식이 없는 개체의 수와 세대를 출력재귀쿼리 사용하기풀이원본: https://school.programmers.co.kr/questions/76223 1) 재귀쿼리로 세대를 구분하는 임시테이블 생성1-1) 임시테이블의 첫번째 쿼리는 초기값으로 1세대로 지정(PARENT_ID가 NULL = 1세대)1-2) UNION ALL 아래의 두번째 쿼리는 재귀쿼리로 PARENT_ID와 매칭되는 ID가 없을 때 까지 반복하여 세대를 구분 *재귀쿼리에 대한 설명: https://o..
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] : 자동차 대여 기록 별 대여 금액 구하기링크: https://school.programmers.co.kr/learn/courses/30/lessons/151141문제(일부): 요금테이블, 대여이력 테이블, 기간별 할인율 테이블을 사용하여 차종이 트럭인 대여기록별 대여금액 구하기1. 서브쿼리 활용1) 요금테이블과 대여이력 테이블을 JOIN2) WHERE절에서 차종이 트럭인 것으로 필터링3) 대여기간*요금*기간별할인율3-1) 기간별 할인율은 서브쿼리를 사용3-1-1) WHERE절에 CASE문을 활용하여 기간별 할인율 타입 사용, COALESCE로 할인율이 없는 경우 1을 사용SELECT H.HISTORY_ID, FLOOR..
출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] : 상품을 구매한 회원 비율 구하링크: https://school.programmers.co.kr/learn/courses/30/lessons/131534문제(일부): 가입일자가 있는 USER_INFO테이블과 판매정보가 있는 ONLINE_SALE 테이블에서 21년도에 가입한 회원 중 구매이력이 있는 회원 수, 비율(구매한 회원 수 / 가입자 수)WITH절과 서브쿼리를 활용한 풀이0) 답안출처: https://school.programmers.co.kr/questions/754891) 2021년도 가입자만 있는 USER_INFO 임시테이블 생성2) 메인쿼리에서는 FROM절에 ONLINE_SALE테이블을 사용3) WHERE절에서 임시테..