[프로그래머스] 즐겨찾기가 가장 많은 식당 정보 출력하기 | 오라클
·
📝 Coding Test/SQL
문제즐겨찾기가 가장 많은 식당 정보 출력하기풀이SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITESFROM REST_INFOWHERE (FOOD_TYPE, FAVORITES) IN ( SELECT FOOD_TYPE, MAX(FAVORITES) FROM REST_INFO GROUP BY FOOD_TYPE)ORDER BY FOOD_TYPE DESC;GROUP BY를 이용해서 음식별 최대 즐겨찾기 수를 뽑은 서브쿼리를 이용해서 풀이합니다.
[프로그래머스] 주문량이 많은 아이스크림들 조회하기 | 오라클
·
📝 Coding Test/SQL
문제주문량이 많은 아이스크림들 조회하기풀이SELECT FLAVORFROM ( SELECT FLAVOR, SUM(TOTAL_ORDER) SUM FROM ( SELECT * FROM FIRST_HALF UNION ALL SELECT * FROM JULY ) GROUP BY FLAVOR ORDER BY SUM DESC) WHERE ROWNUM 상반기와 7월에 가장 많이 팔린 FLAVOR를 순서대로 3개 구하는 문제입니다. 상반기 판매정보와 7월 판매정보 중 겹치는 데이터가 없기 때문에, UNION ALL을 사용해서 풀이했습니다. *참고 : UNION은 중복된 row를 제외하고(DISTINCT), UNION ALL은 중복된 row도 ..
[프로그래머스] 취소되지 않은 진료 예약 조회하기 | 오라클
·
📝 Coding Test/SQL
문제취소되지 않은 진료 예약 조회하기풀이SELECT A.APNT_NO, P.PT_NAME, P.PT_NO, A.MCDP_CD, D.DR_NAME, A.APNT_YMDFROM APPOINTMENT A JOIN PATIENT P ON A.PT_NO = P.PT_NO JOIN DOCTOR D ON A.MCDP_CD = D.MCDP_CD AND A.MDDR_ID = D.DR_IDWHERE TO_CHAR(A.APNT_YMD, 'YYYYMMDD') = '20220413' AND A.MCDP_CD = 'CS' AND A.APNT_CNCL_YN = 'N'ORDER BY A.APNT_YMD;
[프로그래머스] 자동차 대여 기록 별 대여 금액 구하기 | 오라클
·
📝 Coding Test/SQL
문제자동차 대여 기록 별 대여 금액 구하기풀이SELECT AA.HISTORY_ID, (AA.RENT_DATE * AA.DAILY_FEE) * (100 - NVL(DISCOUNT_RATE, 0)) / 100 FEEFROM (SELECT HISTORY_ID, H.END_DATE - H.START_DATE + 1 RENT_DATE, CASE WHEN H.END_DATE - H.START_DATE + 1 >= 90 THEN '90일 이상' WHEN H.END_DATE - H.START_DATE + 1 >= 30 THEN '30일 이상' WHEN H.END_DATE - H.START_DATE + 1 >= ..
[프로그래머스] 조건에 맞는 사용자 정보 조회하기 | 오라클
·
📝 Coding Test/SQL
[level 3] 조건에 맞는 사용자 정보 조회하기 - 164670문제 링크성능 요약메모리: 0.0 MB, 시간: 0.00 ms구분코딩테스트 연습 > String, Date풀이SELECT USER_ID, NICKNAME, CITY || ' ' || STREET_ADDRESS1 || ' ' || STREET_ADDRESS2 전체주소, SUBSTR(TLNO, 1, 3) || '-' || SUBSTR(TLNO, 4, 4) || '-' || SUBSTR(TLNO, 8, 4) 전화번호FROM USED_GOODS_USERWHERE USER_ID IN ( SELECT WRITER_ID FROM USED_GOODS_BOARD GROUP BY WRITER_ID HAVING COUNT..
[프로그래머스] 오랜 기간 보호한 동물(2) | 오라클
·
📝 Coding Test/SQL
문제오랜 기간 보호한 동물(2)풀이SELECT *FROM ( SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS I JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID ORDER BY O.DATETIME - I.DATETIME DESC)WHERE ROWNUM DATETIME을 빼서 정렬을 할 생각을 처음에 하지 못했습니다.
[프로그래머스] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 | 오라클
·
📝 Coding Test/SQL
[level 3] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 - 164671문제 링크성능 요약메모리: 0.0 MB, 시간: 0.00 ms구분코딩테스트 연습 > String, Date정답SELECT '/home/grep/src/' || B.BOARD_ID || '/' || B.FILE_ID || B.FILE_NAME || B.FILE_EXT FILE_PATHFROM USED_GOODS_BOARD A JOINUSED_GOODS_FILE BON A.BOARD_ID = B.BOARD_IDWHERE VIEWS = ( SELECT MAX(VIEWS) FROM USED_GOODS_BOARD)ORDER BY FILE_ID DESC;참고중첩 서브쿼리를 이용하여 문제를 해결할 수 있습니다.참고 : 서브쿼..
[프로그래머스] 조건에 부합하는 중고거래 상태 조회하기 | 오라클
·
📝 Coding Test/SQL
[level 2] 조건에 부합하는 중고거래 상태 조회하기 - 164672문제 링크성능 요약메모리: 0.0 MB, 시간: 0.00 ms구분코딩테스트 연습 > String, Date정답SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, CASE WHEN STATUS = 'SALE' THEN '판매중' WHEN STATUS = 'RESERVED' THEN '예약중' ELSE '거래완료' END AS STATUSFROM USED_GOODS_BOARDWHERE TO_CHAR(CREATED_DATE, 'YYYY-MM-DD') = '2022-10-05'ORDER BY BOARD_ID DESC;
[프로그래머스] 오랜 기간 보호한 동물(1) | 오라클
·
📝 Coding Test/SQL
문제오랜 기간 보호한 동물(1)풀이SELECT *FROM ( SELECT AI.NAME, AI.DATETIME FROM ANIMAL_INS AI LEFT JOIN ANIMAL_OUTS AO ON AI.ANIMAL_ID = AO.ANIMAL_ID WHERE AO.ANIMAL_ID IS NULL ORDER BY AI.DATETIME)WHERE ROWNUM LEFT JOIN을 사용하여 들어온 기록은 있지만 나간 기록이 없는 동물을 조회하고 들어온 시간을 기준으로 오름차순 정렬한 인라인 뷰를 만듭니다.MySQL에는 limit 기능을 사용하면 원하는 데이터의 수를 가져오기 편한데 오라클에는 없습니다.ROWNUM을 사용하여 원하는 수만큼의 데이터를 가져올 수 있습니다.