[프로그래머스] 입양 시각 구하기(2) | 오라클
·
📝 Coding Test/SQL
문제입양 시각 구하기(2)풀이SELECT A.HOUR, COUNT(B.DATETIME) COUNTFROM (SELECT LEVEL - 1 AS HOUR FROM DUAL CONNECT BY LEVEL COUNT(*)을 하면 데이터가 없어도 1로 출력하기 때문에, COUNT(B.DATETIME)으로 작성했습니다.0부터 23을 가진 테이블을 만들어주기 위해 CONNECT BY(계층적 쿼리)를 사용하였습니다.참고오라클 순번 채번 CONNECT BY LEVEL 활용하기[Oracle] 오라클 CONNECT BY 사용법 (계층형 쿼리)
[프로그래머스] 년, 월, 성별 별 상품 구매 회원 수 구하기 | 오라클
·
📝 Coding Test/SQL
문제식품분류별 가장 비싼 식품의 정보 조회하기풀이SELECT TO_CHAR(B.SALES_DATE, 'YYYY') YEAR, TO_NUMBER(TO_CHAR(B.SALES_DATE, 'MM')) MONTH, GENDER, COUNT(DISTINCT A.USER_ID) USERSFROM USER_INFO A JOIN ONLINE_SALE B ON A.USER_ID = B.USER_IDWHERE GENDER IS NOT NULLGROUP BY TO_CHAR(B.SALES_DATE, 'YYYY'), TO_NUMBER(TO_CHAR(B.SALES_DATE, 'MM')), GENDERORDER BY 1, 2, 3;1자리 숫자의 달의 경우 앞의 0을 제거하기 위해, TO_NUMBER를 사용했습니다.중복되는 유저가..
[프로그래머스] 식품분류별 가장 비싼 식품의 정보 조회하기 | 오라클
·
📝 Coding Test/SQL
문제식품분류별 가장 비싼 식품의 정보 조회하기풀이SELECT CATEGORY, PRICE MAX_PRICE, PRODUCT_NAMEFROM FOOD_PRODUCTWHERE (CATEGORY, PRICE) IN ( SELECT CATEGORY, MAX(PRICE) FROM FOOD_PRODUCT WHERE CATEGORY IN ('과자', '국', '김치', '식용유') GROUP BY CATEGORY)ORDER BY MAX_PRICE DESC;서브쿼리를 활용하여 문제를 해결했습니다.
[프로그래머스] 서울에 위치한 식당 목록 출력하기 | 오라클
·
📝 Coding Test/SQL
문제자동차 대여 기록 별 대여 금액 구하기풀이SELECT A.REST_ID, A.REST_NAME, A.FOOD_TYPE, A.FAVORITES, A.ADDRESS, B.REVIEW_SCOREFROM REST_INFO A JOIN (SELECT REST_ID, ROUND(AVG(REVIEW_SCORE), 2) REVIEW_SCORE FROM REST_REVIEW GROUP BY REST_ID) BON A.REST_ID = B.REST_IDWHERE A.ADDRESS LIKE '서울%'ORDER BY REVIEW_SCORE DESC, FAVORITES DESC;REST_ID와 리뷰점수 평균 두 개의 컬럼을 갖는 인라인 뷰를 만들어 조인하여 풀이하였습니다.
[프로그래머스 Lv0] 숨어있는 숫자의 덧셈 (2) | 자바
·
📝 Coding Test/Programmers Lv0
문제숨어있는 숫자의 덧셈 (2)풀이class Solution { public int solution(String my_string) { int answer = 0; String[] strArr = my_string.replaceAll("[a-zA-Z]", " ").split(" "); for(String str : strArr) { if(!str.equals("")) answer += Integer.parseInt(str); } return answer; }}모든 알파벳을 제거해야하는데 replaceAll("[a-zA-Z]", " ")를 사용하여 모든 알파벳을 제거할 수 있습니다.
[프로그래머스] 그룹별 조건에 맞는 식당 목록 출력하기 | 오라클
·
카테고리 없음
문제그룹별 조건에 맞는 식당 목록 출력하기풀이SELECT A.MEMBER_NAME, B.REVIEW_TEXT, TO_CHAR(B.REVIEW_DATE, 'YYYY-MM-DD') REVIEW_DATEFROM MEMBER_PROFILE A JOIN REST_REVIEW B ON A.MEMBER_ID = B.MEMBER_IDWHERE A.MEMBER_ID = ( SELECT MEMBER_ID FROM ( SELECT MEMBER_ID, COUNT(*) FROM REST_REVIEW GROUP BY MEMBER_ID ORDER BY COUNT(*) DESC ) WHERE ROWNUM = 1)ORDER BY REVIEW_DATE, RE..
[프로그래머스] 즐겨찾기가 가장 많은 식당 정보 출력하기 | 오라클
·
📝 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를 이용해서 음식별 최대 즐겨찾기 수를 뽑은 서브쿼리를 이용해서 풀이합니다.
[프로그래머스 Lv3] 가장 먼 노드 | 자바
·
📝 Coding Test/Programmers Lv3
문제가장 먼 노드풀이import java.util.*;class Solution { public int solution(int n, int[][] edge) { int answer = 0; int[] visited = new int[n + 1]; ArrayList> graph = new ArrayList(); for(int i = 0; i ()); } for(int i = 0; i > graph, int[] visited, int start) { Queue q = new LinkedList(); q.offer(start); visited[start] = 1; ..
[프로그래머스] 주문량이 많은 아이스크림들 조회하기 | 오라클
·
📝 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도 ..