SQL 코드카타 31

특정 기간동안 대여 가능한 자동차들의 대여비용 구하기

CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬해주세요. SELECT c.car_id , c.car_..

SQL 코드카타 2024.04.16

입양 시각 구하기(2) #WITH RECURSIVE , SET함수

보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. WITH RECURSIVE 구문 사용 WITH RECURSIVE TIME AS( SELECT 0 AS h UNION ALL SELECT h+1 FROM TIME WHERE h < 23) SELECT h, COUNT(HOUR(DATETIME)) AS 'COUNT' FROM TIME LEFT OUTER JOIN ANIMAL_OUTS ON h=HOUR(DATETIME) GROUP BY h ORDER BY h; ① WITH RECURSIVE TIME AS( # 가상 테이블명 TIME 생성 ② SELE..

SQL 코드카타 2024.04.11

대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수(컬럼명: RECORDS) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 월을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID를 기준으로 내림차순 정렬해주세요. 특정 월의 총 대여 횟수가 0인 경우에는 결과에서 제외해주세요. SELECT MONTH(start_date) MONTH , car_id , COUNT(*) RECORDS FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE (START_DATE between '2022-08-01'..

SQL 코드카타 2024.04.09

헤비 유저가 소유한 장소 # where 절 서브쿼리

이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요. SELECT id,name,host_id FROM places WHERE host_id IN ( SELECT host_id FROM places GROUP BY 1 HAVING COUNT(host_id)>=2 ) ① SELECT host_id FROM places GROUP BY 1 HAVING COUNT(host_id)>=2 # host_id 가 2건 이상인 헤비유저를 뽑아준다 ② WHERE host_id IN (1번 서브쿼리) # 헤비유저들만 조회해준다

SQL 코드카타 2024.04.04

자동차 평균 대여 기간 구하기

CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION) 리스트를 출력하는 SQL문을 작성해주세요. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬해주세요. SELECT car_id , ROUND(AVG(DATEDIFF(end_date,start_date)+1),1) AVERAGE_DURATION FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY GROUP BY 1 HAVING AVERAGE_DURATION>=7 ORDER BY 2 DE..

SQL 코드카타 2024.04.04

자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 # SELECE절 서브쿼리

CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 2022년 10월 16일에 대여 중인 자동차인 경우 '대여중' 이라고 표시하고, 대여 중이지 않은 자동차인 경우 '대여 가능'을 표시하는 컬럼(컬럼명: AVAILABILITY)을 추가하여 자동차 ID와 AVAILABILITY 리스트를 출력하는 SQL문을 작성해주세요. 이때 반납 날짜가 2022년 10월 16일인 경우에도 '대여중'으로 표시해주시고 결과는 자동차 ID를 기준으로 내림차순 정렬해주세요. SELECT CAR_ID, IF(CAR_ID IN (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE START_DATE = '2022-10-16'), '대여중', '대여 가능') A..

SQL 코드카타 2024.04.03

조건에 맞는 사용자 정보 조회하기 # CONCAT(),SUBSTR()

https://school.programmers.co.kr/learn/courses/30/lessons/164670#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 중고 거래 게시물을 3건 이상 등록한 사용자의 사용자 ID, 닉네임, 전체주소, 전화번호를 조회하는 SQL문을 작성해주세요. 이때, 전체 주소는 시, 도로명 주소, 상세 주소가 함께 출력되도록 해주시고, 전화번호의 경우 xxx-xxxx-xxxx 같은 형태로 하이픈 문자열(-)을 삽입하여 출력해주세요. 결과는 회원 ID..

SQL 코드카타 2024.04.02

재구매가 일어난 상품과 회원 리스트 구하기 # GROUP BY

https://school.programmers.co.kr/learn/courses/30/lessons/131536 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요. SELECT user_id, product_id FROM online_sale GROUP BY 1,2 HAVING CO..

SQL 코드카타 2024.04.02

즐겨찾기가 가장 많은 식당 정보 출력하기 # 다중컬럼 IN

https://school.programmers.co.kr/learn/courses/30/lessons/131123#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요. select food_type, rest_id,rest_name, favorites from rest_info where (food_type,favorites) IN (select f..

SQL 코드카타 2024.04.01

3월에 태어난 여성 회원 목록 출력하기 # MONTH()

https://school.programmers.co.kr/learn/courses/30/lessons/131120#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요. 이때 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고, 결과는 회원ID를 기준으로 오름차순 정렬해주세요. -- SELECT member_id , member_name , gender , DATE_FORMAT(date_of_birth, '%Y-%m-%d..

SQL 코드카타 2024.03.31