Coding Test/프로그래머스 - ORACLE 5

프로그래머스 Oracle Lv2. 중성화 여부 파악하기

📌문제 보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요.  📌답SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE LIKE 'Neutered%' OR SEX_UPON_INTAKE LIKE 'Spayed%' THEN 'O' ELSE 'X' END AS 중성화 FROM ANIMAL_INS ORDER BY ANIMAL_ID;  📌..

프로그래머스 Oracle Lv1. 자동차 대여 기록에서 장기/단기 대여 구분하기

📌문제 📌정답SELECT HISTORY_ID, CAR_ID, TO_CHAR(START_DATE,'YYYY-MM-DD') AS START_DATE, TO_CHAR(END_DATE,'YYYY-MM-DD') AS END_DATE, CASE WHEN TO_NUMBER(END_DATE-START_DATE)>=29 THEN '장기 대여' ELSE '단기 대여' END AS RENT_TYPE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE TO_CHAR(START_DATE,'YYYY-MM') = ('2022-09') ORDER BY HISTORY_ID DESC; 📌해설오답의 이유: 대여기간에 대한 수식을 잘못 설정. 대..

프로그래머스 Oracle Lv.2 중복 제거하기

📌문제 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다. 📌정답 서브쿼리 이용SELECT COUNT(A.NAME) FROM (SELECT NAME FROM ANIMAL_INS GROUP BY NAME) A ; ​   2. DISTINCT 이용SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS WHERE NAME IS NOT NULL;​​#잊지말자 DISTINCT.....

프로그래머스 ORACLE Lv.1 조건에 부합하는 중고거래 댓글 조회하기

📌문제USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요   📌정답SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, TO_CHAR(R.CREATED_DATE,'YYYY-MM-DD') AS CREATE_DATE FROM USED_GOODS_BOARD B , USED_GOODS_REPLY R WHERE B.BOARD_ID=R.BOARD..

프로그래머스 ORACLE Lv.1 상위 n개 레코드

📌문제  📌오답SELECT NAME FROM ANIMAL_INS WHERE TO_NUMBER(TO_CHAR(DATETIME,'YYYYMMDDHHMISS')) 오답이유) DATETIME 데이터가 숫자처럼 대소 비교가 가능한지 몰랐음. 생각해보니 문자열끼리도 비교가 되는데 DATETIME도 당연히 될 것.. 정답은 나왔는데 코드가 지저분해서 오답처리 받은 것 같다. ​📌정답SELECT NAME FROM ANIMAL_INS WHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS); 서브쿼리를 이용하여 출력