본문 바로가기

Algorithm/SQL21

[SQL] 프로그래머스 - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 https://school.programmers.co.kr/learn/courses/30/lessons/164671 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. Problem USED_GOODS_BOARD와 USED_GOODS_FILE 테이블에서 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회하는 SQL문을 작성해주세요. 첨부파일 경로는 FILE ID를 기준으로 내림차순 정렬해주세요. 기본적인 파일경로는 /home/grep/src/ 이며, 게시글 ID를 기준으로 디렉토리가 구분되고, 파일이름은 파일 ID, 파일 이름, 파일 확장자로 구.. 2024. 7. 15.
[SQL] 프로그래머스 - 업그레이드 할 수 없는 아이템 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/273712 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. Problem 더 이상 업그레이드할 수 없는 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬해 주세요.2. Analysis1. 자식 ID가 없는 경우가 더 이상 업그레이드 할 수 없는 경우라는 것을 파악했고 SELF-JOIN을 통해, 자식 ID가 없는 .. 2024. 7. 15.
[MySQL] 재귀 (RECURSIVE) 테이블 생성 MySQL에서는 CTE (Common Table Expression)를 활용하여 재귀 테이블을 생성할 수 있다.CTE를 활용하게 된다면, 재귀 쿼리를 이용해 메모리 상에 가상의 테이블을 저장하게 된다.이를 통해, 시리즈 및 계층을 생성해서 다양하게 활용할 수 있다. 재귀 쿼리 사용법은 아래와 같다.WITH RECURSIVE CTE (컬럼명1, 컬럼명2, ...) AS(SELECT 컬럼명1, 컬럼명2, ... -- 초기 값FROM TABLEWHERE 제어문UNION ALLSELECT 컬럼명1, 컬럼명2, ... -- 초기 값 이후 재귀하면서 계속 UNION 할 값FROM CTEINNER JOIN ON CTE.컬럼명 = TABLE.컬럼명 -- 요구하는 조건 잘 확인하기WHERE 제어문)SELECT *FROM.. 2024. 7. 13.
[SQL] 프로그래머스 - 특정 세대의 대장균 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/301650 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1. Problem 3세대의 대장균의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 이때 결과는 대장균의 ID 에 대해 오름차순 정렬해주세요. 2. Analysis1. 재귀 쿼리를 사용해서 ID별 계층 LEVEL을 구하는 계산식을 활용하면 3세대 뿐만 아니라 N세대를 구하는 문제가 나왔을 때에도 편하게 풀 수 있을 것이라고 생각함.WITH RECURSIVE CTE(ID, PARENT_ID, LE.. 2024. 7. 13.