티스토리 뷰

SQL

프로그래머스 SQL Lv 5

김남김 2025. 4. 14. 18:18

반가워요 SQL!

 

 

개발을 하면서, 효율적인 SQL을 작성하기에 앞서 SQL 에 대해 더 친근해지고자!!
예전에 프로그래머스에 있는 SQL 문제를 모두 풀었습니다.

저만 알기보다, 각 게시글을 Lv 1에서 5까지하여  모든 문제의 답을 공유하고자합니다.
(참고로 기본적인 데이터베이스 지식과 함께 SQL을 공부한다면,
따로 SQLD를 학습하지 않아도 쉽게 따실 수 있습니다!! 따로 준비 안하고 땄습니듯! )

 


 

상품을 구매한 회원 비율 구하기

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

SELECT DATE_FORMAT(O.SALES_DATE, '%Y') AS YEAR,
        DATE_FORMAT(O.SALES_DATE, '%m') AS MONTH,
        COUNT(DISTINCT U.USER_ID) AS PUCHASED_USERS,
        ROUND(COUNT(DISTINCT U.USER_ID)
        /
        (SELECT COUNT(*) FROM USER_INFO WHERE joined LIKE '2021%'), 1) AS PUCHASED_RATIO
FROM USER_INFO U
JOIN ONLINE_SALE O
ON U.USER_ID = O.USER_ID
WHERE U.JOINED LIKE '2021%'
GROUP BY YEAR, MONTH
ORDER BY YEAR, MONTH;

 

멸종위기의 대장균 찾기

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

WITH RECURSIVE TMP AS (
    SELECT ID, PARENT_ID, 1 AS GENERATION
    FROM ECOLI_DATA
    WHERE PARENT_ID IS NULL
    UNION ALL
    SELECT S.ID, S.PARENT_ID, TMP.GENERATION + 1
    FROM TMP JOIN ECOLI_DATA S
    ON TMP.ID = S.PARENT_ID
)

SELECT COUNT(*) AS COUNT, GENERATION
FROM TMP
WHERE ID NOT IN (
    SELECT DISTINCT PARENT_ID
    FROM TMP
    WHERE PARENT_ID IS NOT NULL
)
GROUP BY GENERATION
ORDER BY GENERATION;

'SQL' 카테고리의 다른 글

프로그래머스 SQL Lv 4  (0) 2025.04.14
프로그래머스 SQL Lv 3  (0) 2025.04.14
프로그래머스 SQL Lv 2  (0) 2025.04.07
프로그래머스 SQL Lv 1  (0) 2025.04.07
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
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
글 보관함