분류 전체보기138 프로그래머스 ORACLE 오랜 기간 보호한 동물(1) 정답/*1.아직 입양을 못 간 동물 중, 2.가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 3.이때 결과는 보호 시작일 순으로 조회해야 합니다.*/SELECT A.NAME, A.DATETIME FROM( SELECT T1.NAME, T1.DATETIME --2 FROM ANIMAL_INS T1 LEFT JOIN ANIMAL_OUTS B ON T1.ANIMAL_ID = B.ANIMAL_ID WHERE B.ANIMAL_ID IS NULL --1 ) A --서브쿼리WHERE ROWNUM - FROM 절 안에서 사용되는 서브쿼리는 서브.. DB/쿼리 문제풀이 2023. 10. 6. 프로그래머스 ORACLE 있었는데요 없었습니다 -보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다. 내가 한거SELECT A.ANIMAL_ID, A.NAMEFROM ANIMAL_OUTS A INNER JOIN ANIMAL_INS B ON A.ANIMAL_ID = B.ANIMAL_IDWHERE A.DATETIME 다른 사람 코드📌암시적인 내부 조인 (implicit inner join)SELECT A.ANIMAL_ID, A.NAMEFROM ANIMAL_INS A, ANIMAL_OUTS BWHERE A.ANIMAL_ID = B.ANIMAL_IDAND A.DATETIME > B.DATETIMEORDER BY A.datetime ;이 쿼리에서 A.. DB/쿼리 문제풀이 2023. 10. 6. 프로그래머스 ORACLE 없어진 기록 찾기 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 —>ANIMAL_OUTS 를 조회해야함 ID 순으로 조회하는 SQL문SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_OUTS A LEFT JOIN ANIMAL_INS B ON A.ANIMAL_ID = B.ANIMAL_ID WHERE B.ANIMAL_ID IS NULLORDER BY A.ANIMAL_ID 📌LEFT JOININNER JOIN을 사용하면 해당 동물의 기록 자체가 없기 때문에 조인 조건에 해당되지 않아 결과에 포함되지 않음LEFT JOIN을 사용하면 "ANIMAL_OUTS" 테이블의 모든 데이터를 결과에 포함 DB/쿼리 문제풀이 2023. 10. 6. 프로그래머스 ORACLE 상품 별 오프라인 매출 구하기 1이렇게 하면 sum이 안되어서 상품코드들이 겹쳐서 다 나옴SELECT A.PRODUCT_CODE, A.PRICE * B.SALES_AMOUNT AS SALESFROM PRODUCT AINNER JOIN OFFLINE_SALE BON A.PRODUCT_ID = B.PRODUCT_ID 2집계함수 쓰려고 GROUP BY 추가—>상품코드들 안겹치는거 볼수있음SELECT A.PRODUCT_CODE, SUM(A.PRICE * B.SALES_AMOUNT) AS SALESFROM PRODUCT AINNER JOIN OFFLINE_SALE BON A.PRODUCT_ID = B.PRODUCT_IDGROUP BY A.PRODUCT_CODE --참고ORDER BY SALES DESC, A.PRODUCT_CODE; -- S.. DB/쿼리 문제풀이 2023. 10. 6. 프로그래머스 ORACLE 조건에 맞는 도서와 저자 리스트 출력하기 SELECT A.BOOK_ID AS BOOK_ID, B.AUTHOR_NAME AS AUTHOR_NAME, TO_CHAR(A.PUBLISHED_DATE, 'YYYY-MM-DD') AS PUBLISHED_DATEFROM BOOK A --기준테이블INNER JOIN AUTHOR BON A.AUTHOR_ID = B.AUTHOR_ID WHERE A.CATEGORY ='경제'ORDER BY PUBLISHED_DATE; 📌TO_CHAR(날짜 변환), 조인 기준 테이블 📌LEFT JOIN과 RIGHT JOIN데이터베이스에서 두 개의 테이블을 연결할 때 사용되는 조인 유형입니다.이 두 조인의 차이는 연결하는 테이블의 순서와 결과에 있습니다.LEFT JOIN:왼쪽 테이블을 기준으로 하여 오른쪽 테이블과 연결합니.. DB/쿼리 문제풀이 2023. 10. 6. 프로그래머스 ORACLE 카테고리 별 도서 판매량 집계하기 정답SELECT A.CATEGORY, SUM(B.SALES) TOTAL_SALES FROM BOOK AINNER JOIN BOOK_SALES BON A.BOOK_ID = B.BOOK_IDWHERE TO_CHAR(B.SALES_DATE, 'YYYY-MM') ='2022-01'GROUP BY A.CATEGORYORDER BY A.CATEGORY DB/쿼리 문제풀이 2023. 10. 6. 프로그래머스 ORACLE 식품분류별 가장 비싼 식품의 정보 조회하기 1.가장 높은 가격 찾아냄SELECT CATEGORY, MAX(PRICE) FROM FOOD_PRODUCT WHERE CATEGORY IN ('과자', '식용유', '국', '김치') GROUP BY CATEGORY 2.정답SELECT CATEGORY, PRICE AS MAX_PRICE, PRODUCT_NAMEFROM FOOD_PRODUCT WHERE (CATEGORY, PRICE) IN ( SELECT CATEGORY, MAX(PRICE) FROM FOOD_PRODUCT WHERE CATEGORY IN ('과자', '식용유', '국', '김치') GROUP BY CATEGORY)ORDER BY MAX_PRICE DESC**(CATEGORY, PRICE)**.. DB/쿼리 문제풀이 2023. 10. 6. 프로그래머스 ORACLE 조건에 맞는 사용자와 총 거래금액 조회하기 오답SELECT T1.USER_ID, T1.NICKNAME, T1.TOTAL_SALESFROM ( SELECT B.USER_ID, B.NICKNAME, A.PRICE AS TOTAL_SALES FROM USED_GOODS_BOARD A INNER JOIN USED_GOODS_USER B ON A.WRITER_ID = B.USER_ID WHERE A.STATUS = 'DONE' --AND A.PRICE >=700000 GROUP BY B.USER_ID, B.NICKNAME, A.PRICE HAVING A.PRICE >=700000 ORDER BY TOTAL_SALES) T1 내부 서브쿼리에서 USED_GOODS_BOARD와 USED_GOODS_USER 테이블을.. DB/쿼리 문제풀이 2023. 10. 6. 프로그래머스 ORACLE 즐겨찾기가 가장 많은 식당 정보 출력하기 왜 이렇게 작성하면 안 될까?SELECT FOOD_TYPE, REST_ID, REST_NAME, MAX(FAVORITES) AS FAVORITES FROM REST_INFO GROUP BY FOOD_TYPE, REST_ID, REST_NAMEORDER BY FOOD_TYPE DESC;*GROUP BY로 묶으면 가장 상단에 있는 데이터들을 임의로 가져옵니다. SELECT에 MAX를 해도 최대값을 가져오는것이 아닌 그룹화된 테이블 가장 상단을 가져오게 된다https://school.programmers.co.kr/questions/38854📌SQL 쿼리 실행순서https://monawa.tistory.com/125 1.서브쿼리내용SELECT FOOD_TYPE, MAX(FAVORITES) FAVORI.. DB/쿼리 문제풀이 2023. 10. 6. 프로그래머스 ORACLE 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 정답SELECT CAR_TYPE, COUNT(*) CARS FROM CAR_RENTAL_COMPANY_CARWHERE OPTIONS LIKE '%시트%'GROUP BY CAR_TYPEORDER BY CAR_TYPE 📌LIKE, IN , EXIST 차이와 예제LIKE 연산자:-- 이름이 'John'으로 시작하는 고객 조회SELECT * FROM customers WHERE name LIKE 'John%';-- 이메일 주소에 'gmail'이 포함된 고객 조회SELECT * FROM customers WHERE email LIKE '%gmail%';IN 연산자: IN의 조건이 모두 해당하는 것들이 조회됨-- 고객 ID가 1, 3, 5인 고객 조회SELECT * FROM customers WHERE cu.. DB/쿼리 문제풀이 2023. 10. 6. 프로그래머스 ORACLE 성분으로 구분한 아이스크림 총 주문량 1. 조인해서 확인SELECT B.INGREDIENT_TYPE , A.TOTAL_ORDER FROM FIRST_HALF A INNER JOIN ICECREAM_INFO B ON A.FLAVOR =B.FLAVORORDER BY A.TOTAL_ORDER DESC 2. 정답SELECT B.INGREDIENT_TYPE , SUM(A.TOTAL_ORDER) AS TOTAL_ORDER FROM FIRST_HALF A INNER JOIN ICECREAM_INFO B ON A.FLAVOR =B.FLAVORGROUP BY B.INGREDIENT_TYPEORDER BY TOTAL_ORDER -- 컬럼의 별칭이 아니라 원래 컬럼 이름을 써야함 여기선 A.TOTAL_ORDER 안됨 B... DB/쿼리 문제풀이 2023. 10. 6. 프로그래머스 ORACLE 가격대 별 상품 개수 구하기 정답SELECT TRUNC(PRICE,-4) AS PRICE_GROUP, COUNT(PRODUCTS) AS PRODUCTSFROM PRODUCTGROUP BY TRUNC(PRICE,-4)ORDER BY PRICE_GROUP📌TRUNChttps://gent.tistory.com/192📌**COUNT** 함수는 주로 NULL이 아닌 값을 가진 행의 수를 세는 데 사용되므로, 특정 컬럼 이름을 사용하는 것보다는 * (별표)를 사용하여 모든 행을 카운트하는 것이 더 일반적 DB/쿼리 문제풀이 2023. 10. 6. 이전 1 2 3 4 5 ··· 12 다음