[Oracle][Programmers] 자동차 대여 기록 별 대여 금액 구하기
·
[Programmers]/- SQL
1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr총 3개의 테이블이 등장하니 각 테이블에서 얻을 수 있는 정보를 잘 분석해야 한다. 자동차 종류(CAR_TYPE)가 '트럭'인 자동차의 대여 기록에 대해 대여 기록 별로 대여 금액(컬럼명 : FEE)을 구하여 대여 기록 ID(HISTORY_ID)와 대여 금액(FEE) 리스트를 출력하는 문제. 결과는 대여 금액(FEE)을 기준으로 내림차순 정렬, 대여 금액이 같다면 대여 기록 ID(HISTORY_ID)를 기준으로 내림차순 정렬. 2. 풀이자동차 종류가 트럭 : WHERE car_type = '트럭'대여 기록별 대여 금액 : 왠지 GROUP BY를 써야 할 것..
[Oracle][Programmers] 특정 기간동안 대여 가능한 자동차들의 대여 비용 구하기
·
[Programmers]/- SQL
1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이 문제에는 총 3개의 테이블이 존재하니 각 테이블에서 필요한 정보를 잘 파악하는 것이 중요하다. 문제의 요구사항은 다음과 같다.자동차 종류가 '세단' 또는 'SUV'인 자동차2022년 11월 1일부터 2022년 11월 30일까지 대여 가능30일간의 대여 금액이 50만원 이상 200만원 미만자동차 ID(CAR_ID), 자동차 종류(CAR_TYPE), 30일간의 대여 금액(컬럼명 : FEE)결과는 대여 금액(FEE) 기준 내림차순 정렬, 대여 금액이 같다면 자동차 종류(CAR_TYPE)를 기준으로 오름차순 정렬, 자동차 종류까지 같다면 자동차 ID(CAR_..
[Oracle][Programmers] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
·
[Programmers]/- SQL
1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr위 테이블에서 대여 시작일(START_DATE)을 기준으로 2022년 8월부터 2022년 10월까지의 총 대여 횟수가 5회 이상인 자동차들에 대해서 각 월별 자동차 ID의 총 대여 횟수(컬럼명 : RECORDS) 리스트를 출력하는 문제. 결과는 월(컬럼명 : MONTH)을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID(CAR_ID)를 기준으로 내림차순 정렬. 출력 형태는 다음과 같아야 한다.2. 풀이대여 시작일 기준 2022년 8월부터 2022년 10월까지 : WHERE TO_CHAR(start_date, 'YYYYMM') BETWEEN '20220..
[Oracle][Programmers] 자동차 대여 기록에서 대여중/대여 가능 여부 구분하기
·
[Programmers]/- SQL
1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr2022년 10월 16일에 대여 중인 자동차라면 '대여중'으로, 대여 중이 아니라면 '대여 가능'으로 표시하는 컬럼(컬럼명: AVAILABILITY)을 추가하여 자동차 ID(CAR_ID)와 같이 출력하는 문제. 만약 반납 날짜(END_DATE)가 2022년 10월 16일인 경우에도 '대여중'으로 표시하고 결과는 자동차 ID를 기준으로 내림차순 정렬. 2. 풀이2-1. MAX 사용첫 번째 방법은 한글의 정렬을 이용하는 것이다. '대여중'과 '대여 가능'을 비교하면 'ㅈ'이 'ㄱ'보다 크기 때문에 MAX('대여중', '대여 가능')을 하면 '대여중'이 나오는데..
[Oracle][Programmers] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
·
[Programmers]/- SQL
1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kroptions 컬럼에 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 문제. 자동차 수 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬. 2. 풀이options 컬럼 값에 특정 옵션이 있는지 확인해야 하므로 LIKE 연산자나 REGEXP_LIKE( ) 함수를 사용해야 한다.✏️ 정답 쿼리 1)SELECT car_type, COUNT(car_id) AS carsFROM car_rental_company_carWHERE options LIKE '%통풍시트%' O..
[Oracle][Programmers] 자동차 평균 대여 기간 구하기
·
[Programmers]/- SQL
1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr평균 대여 기간(AVERAGE_DURATION)이 7일 이상인 자동차들의 자동차 ID(CAR_ID)와 평균 대여 기간 리스트를 출력하는 문제. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬하는데 만약 이 값이 같다면 자동차 ID를 기준으로 내림차순 정렬. 2. 풀이대여 기간은 빌린 날부터 1일이므로 end_date - start_date+1로 계산해야 함평균 대여 기간을 소수점 두번째 자리에서 반올림 : ROUND(AVG(end_date - start_date+1), 1)평균 대여 기간 기준 내림차순 ..
[Oracle][Programmers] 조건에 부합하는 중고거래 상태 조회하기(Lv 2)
·
[Programmers]/- SQL
1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr2022년 10월 5일에 등록된 중고거래 게시물의 게시글 ID(BOARD_ID), 작성자 ID(WRITER_ID), 게시글 제목(TITLE), 가격(PRICE), 거래상태(STATUS)를 조회하는 문제. 거래상태가 SALE이면 '판매중', 'RESERVED'이면 '예약중', 'DONE'이면 '거래완료'로 출력하고 결과는 게시글 ID를 기준으로 내림차순 정렬. 2. 풀이2022년 10월 5일에 등록된 게시글 : WHERE TO_CHAR(created_date, 'YYYYMMDD') = '20221005'게시글 ID 기준 내림차순 정렬 : ORDER BY bo..
[Oracle][Programmers] 여러 기준으로 정렬하기
·
[Programmers]/- SQL
1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr모든 동물의 아이디(ANIMAL_ID)와 이름(NAME), 보호 시작일(DATETIME)을 이름 순으로 조회하는 문제. 이름이 같다면 보호를 나중에 시작한 동물을 먼저 보여줘야 함. 2. 풀이오라클에서 여러 기준으로 정렬하려면 쉼표로 구분하여 정렬 조건을 나열하기만 하면 된다.✏️ 정답 쿼리SELECT animal_id, name, datetimeFROM animal_insORDER BY name, datetime DESC
[Oracle][Programmers] 상위 n개 레코드
·
[Programmers]/- SQL
1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr동물 보호소에 가장 먼저 들어온 동물의 이름(NAME)을 조회하는 문제. 2. 풀이가장 먼저 들어온 동물이란 보호 시작일(datetime)이 가장 작은 값의 데이터를 뜻한다. 이를 위한 방법은 다음과 같다.datetime 값이 최솟값인 행 구하기datetime을 기준으로 오름차순 정렬한 뒤 상위 첫 번째 행 구하기✏️ 정답 쿼리 1 - 서브쿼리 사용SELECT nameFROM animal_insWHERE datetime = ( SELECT MIN(datetime) FROM animal_ins)=> 최소 datetime 값을 구하는 서브쿼리를 사..
[Oracle][Programmers] 이름이 있는 동물의 아이디
·
[Programmers]/- SQL
1. 문제 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이름이 있는 동물의 ID(ANIMAL_ID)를 조회하는 문제. 결과는 동물 ID를 기준으로 오름차순 정렬. 2. 풀이오라클에서 값이 있는지 확인할 땐 IS NOT NULL을 사용하면 된다.이름이 있는 동물 : WHERE name IS NOT NULL✏️ 정답 쿼리SELECT animal_idFROM animal_insWHERE name IS NOT NULLORDER BY animal_id