일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 데이터분석
- mysql
- 시간함수
- 셀프조인
- SQL고득점KIT
- 파이썬
- 코테준비
- 프로그래머스문풀
- leetcode
- leetcode문풀
- 서브쿼리
- join
- 그로스해킹
- levle1
- 데이터리안
- sql50
- 코테후기
- 티스토리챌린지
- 파이썬문풀
- 데이터리안넥스트레벨챌린지
- 위키독스
- SQL
- 활성사용자수
- sql문풀
- 문풀
- 데벨챌
- 오블완
- with절
- 데이터리안실전반
- 프로그래머스
- Today
- Total
목록서브쿼리 (13)
꿈은 데이터분석가, 취미는 계획

출처: [프로그래머스] : 서울에 위치한 식당 목록 출력하기문제: 매장정보와 리뷰정보 테이블을 활용하여 매장정보와 리뷰 평균 출력 1. INNER JOIN 활용하기1) 매장 정보 테이블과 리뷰 테이블을 INNER JOIN(리뷰가 있는 것만 조회 되도록)2) GROUP BY로 매장별 정보와 리뷰 평점을 집계3) where절에서 LIKE로 서울인 것을 필터링 *주의* 샘플 데이터에 '서울특별시'로 되어있어서 그대로 사용하였는데 '서울시'로 입력된 것도 있어 정답처리x 샘플만 믿지 말고 실제로 조회해보는 단계가 필요! SELECT ri.REST_ID, ri.REST_NAME, ri.FOOD_TYPE, ri.FAVORITES AS FAVORITE, ..

출처: [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..