[MySQL] [프로그래머스 level 5] 멸종위기의 대장균 찾기
·
SQL/프로그래머스
📌 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/301651 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr📌 문제 풀이-- 지속적으로 부모-자식 관계를 따라가며 세대를 계산해야 하므로 재귀 CTE 사용with recursive gen_table as ( -- 1단계: 최상위 개체(root) 선택 select id, parent_id, 1 as generation from ECOLI_DATA a where parent_id is null union all -- 2단계 이후: 부모-자식 관계를 따라..
[MySQL] [프로그래머스 level 4] 주문량이 많은 아이스크림들 조회하기
·
SQL/프로그래머스
📌 문제링크https://school.programmers.co.kr/learn/courses/30/lessons/133027 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr📌 문제풀이1. UNION ALL 사용withraw as ( select * from FIRST_HALF union all select * from JULY), raw2 as ( select *, row_number() over(order by total_order desc) as rn from (select flavor, sum(total_order) as total_order from raw ..
[MySQL] [프로그래머스 level 4] 그룹별 조건에 맞는 식당 목록 출력하기
·
SQL/프로그래머스
📌 문제링크https://school.programmers.co.kr/learn/courses/30/lessons/131124 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr📌 문제풀이withraw1 as ( select *, count(review_id) over(partition by member_id) as review_cnt from REST_REVIEW )select a.member_name, b.review_text, date_format(b.review_date, '%Y-%m-%d') as review_datefrom MEMBER_PROFILE a join raw1 b on a..
[MySQL] [프로그래머스 level 4] 입양 시각 구하기(2)
·
SQL/프로그래머스
📌 문제링크https://school.programmers.co.kr/learn/courses/30/lessons/59413# 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr📌 문제풀이## 시간 여백 채우기 위하여 재귀함수 활용with recursive base as ( select 0 as hour union all select hour+1 from base where hour 📖 NOTEANIMAL_OUTS 테이블을 이용해 시간대별 입양 건수를 GROUP BY로 집계하게 되면 입양 기록이 없는 시간대의 경우 아래오 같이 해당 시간대의 행 자체가 생성되지 않음따라서..
[MySQL] 재귀 쿼리(WITH RECURSIVE 문)
·
SQL/Tip
📌 재귀 쿼리란?SQL에서는 CTE(Common Table Expression) 중 WITH RECURSIVE 구문을 사용하면 자기 자신을 반복적으로 호출하는 형태의 재귀 쿼리를 만들 수 있음조직도나 카테고리 트리, 댓글처럼 부모-자식 관계가 있는 계층형 데이터를 조회할 때 주로 활용됨 📚 재귀 쿼리 (WITH RECURSIVE 문) 동작 방식 (아래 쿼리 기본 구조 참고)Anchor 쿼리로 초기 데이터 1회 실행하며, 그 결과를 이용해 Recursive 쿼리 반복 실행UNION ALL로 계속 합치다가 종료 조건 만족 시 멈춤 UNION ALL 위는 시작점, 아래는 반복 규칙을 정의함🔴 재귀 쿼리에 종료 조건이 없으면 자기 자신을 무한히 호출하게 되어 무한 루프가 발생하기 때문에 종료 조건이 필수로..
[MySQL] [프로그래머스 level 4] 자동차 대여 기록 별 대여 금액 구하기
·
SQL/프로그래머스
📌 문제링크https://school.programmers.co.kr/learn/courses/30/lessons/151141 코딩테스트 연습 - 자동차 대여 기록 별 대여 금액 구하기알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려school.programmers.co.kr📌 문제풀이withraw1 as ( select a.car_id, a.car_type, a.daily_fee, b.history_id, daydiff, case when daydiff >= 90 then '90일 이상' when daydi..