본문 바로가기
한화시스템 Beyond SW Camp/기반기술

[Database] 코딩테스트 (프로그래머스)

by taeh00n 2024. 12. 1.

※ 이 글에서 다룬 기반기술, 프론트엔드, 백엔드, 데브옵스 등 풀스택 개발 지식은 모두 한화시스템 Beyond SW Camp 12기에서 배운 내용을 복습한 것입니다.

 

1. 코딩테스트 연습 - 조건에 부합하는 중고거래 댓글 조회하기 | 프로그래머스 스쿨

 

프로그래머스

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

programmers.co.kr

SELECT TITLE, USED_GOODS_BOARD.BOARD_ID, USED_GOODS_REPLY.REPLY_ID, USED_GOODS_REPLY.WRITER_ID, USED_GOODS_REPLY.CONTENTS, DATE_FORMAT(USED_GOODS_REPLY.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE
FROM USED_GOODS_BOARD
INNER JOIN USED_GOODS_REPLY ON USED_GOODS_BOARD.BOARD_ID = USED_GOODS_REPLY.BOARD_ID
WHERE USED_GOODS_BOARD.CREATED_DATE LIKE '2022-10-%'
ORDER BY USED_GOODS_REPLY.CREATED_DATE ASC, TITLE ASC;

 

 

2. 코딩테스트 연습 - 오랜 기간 보호한 동물(1) | 프로그래머스 스쿨

 

프로그래머스

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

programmers.co.kr

SELECT ANIMAL_INS.NAME, ANIMAL_INS.DATETIME
FROM ANIMAL_INS
LEFT JOIN ANIMAL_OUTS ON ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS.ANIMAL_ID
WHERE  ANIMAL_OUTS.DATETIME IS NULL
ORDER BY ANIMAL_INS.DATETIME
LIMIT 0, 3;

 

3. 코딩테스트 연습 - 보호소에서 중성화한 동물 | 프로그래머스 스쿨

 

프로그래머스

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

programmers.co.kr

SELECT ANIMAL_INS.ANIMAL_ID, ANIMAL_INS.ANIMAL_TYPE, ANIMAL_INS.NAME 
FROM ANIMAL_INS
INNER JOIN ANIMAL_OUTS ON ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS.ANIMAL_ID
WHERE ANIMAL_INS.SEX_UPON_INTAKE LIKE 'Intact%' AND 
    (ANIMAL_OUTS.SEX_UPON_OUTCOME LIKE 'Spayed%' 
     OR ANIMAL_OUTS.SEX_UPON_OUTCOME LIKE 'Neutered%')
    
ORDER BY ANIMAL_INS.ANIMAL_ID

 

4. 코딩테스트 연습 - 있었는데요 없었습니다 | 프로그래머스 스쿨

 

프로그래머스

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

programmers.co.kr

SELECT ANIMAL_INS.ANIMAL_ID, ANIMAL_INS.NAME FROM ANIMAL_INS 
INNER JOIN ANIMAL_OUTS ON ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS.ANIMAL_ID
WHERE ANIMAL_INS.DATETIME > ANIMAL_OUTS.DATETIME
ORDER BY ANIMAL_INS.DATETIME

 

5. 코딩테스트 연습 - 없어진 기록 찾기 | 프로그래머스 스쿨

 

프로그래머스

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

programmers.co.kr

SELECT ANIMAL_OUTS.ANIMAL_ID, ANIMAL_OUTS.NAME FROM ANIMAL_OUTS 
LEFT JOIN ANIMAL_INS ON ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS.ANIMAL_ID
WHERE ANIMAL_INS.DATETIME IS NULL
ORDER BY ANIMAL_INS.ANIMAL_ID

 

6. 코딩테스트 연습 - 카테고리 별 도서 판매량 집계하기 | 프로그래머스 스쿨

 

프로그래머스

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

programmers.co.kr

SELECT CATEGORY, SUM(SALES) AS TOTAL_SALES FROM BOOK_SALES
LEFT JOIN BOOK ON BOOK.BOOK_ID = BOOK_SALES.BOOK_ID
WHERE SALES_DATE LIKE '2022-01-%'
GROUP BY CATEGORY
ORDER BY CATEGORY

 

7. 코딩테스트 연습 - 상품을 구매한 회원 비율 구하기 | 프로그래머스 스쿨

 

프로그래머스

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

programmers.co.kr

SELECT 
    DATE_FORMAT(SALES_DATE,'%Y') AS YEAR, 
    DATE_FORMAT(SALES_DATE,'%c') AS MONTH, 
    COUNT(DISTINCT USER_INFO.USER_ID) AS PURCHASED_USERS, 
    ROUND( #소수점 둘째자리에서 반올림
        COUNT(DISTINCT USER_INFO.USER_ID)/      #2021회원 중 구매회원/2021전체회원
            (SELECT COUNT(*)
                FROM USER_INFO
                WHERE JOINED LIKE '2021-%'
            ) ,1   
    )
    AS PUCHASED_RATIO
FROM USER_INFO
INNER JOIN ONLINE_SALE  ON USER_INFO.USER_ID = ONLINE_SALE .USER_ID
WHERE JOINED LIKE '2021-%'
GROUP BY YEAR, MONTH
ORDER BY YEAR, DATE_FORMAT(SALES_DATE,'%c') ASC;