본문 바로가기
728x90

PS/SQL37

[SQL] 자동차 대여 기록 별 대여 금액 구하기 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/151141 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 핵심 CASE-WHEN 사용 IF문 사용 IF(condition, true일 때 value, false일 때 value) TIMESTAMPDIFF TIMESTAMPDIFF(단위, 시작일, 끝일) 해설 temp는 CAR_RENTAL_COMPANY와 CAR_RENTAL_COMPANY_HISTORY를 inner join하고 '트럭'만 필터링한 후에DURATION_TYPE과 TOTAL_F.. 2024. 2. 15.
[SQL] 우유와 요거트가 담긴 장바구니 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/62284 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 핵심 교집합을 활용한 풀이 방법1. milk, yogurt 테이블을 각각 만들어서 inner join하는 풀이 + inner join의 경우 중복된 id를 처리하기 위해서 distinct 방법2. 집합연산사 intersect를 사용해서 우유와 요거트가 모두 있는 id 구하기 2. 코드(MySQL) -- 코드를 입력하세요 # 우유와 요거트 동시 구입한 장바구니 # 장바구니의 id 조회.. 2024. 2. 12.
[SQL] 조건에 맞는 사용자 정보 조회하기 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/164670 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 핵심 COUNT 집계함수 - group by된 행의 개수를 세고 싶을 때..순간 떠올리지 못했다. CONCAT CONCAT('행복한', '라이언')의 결과는 '행복한라이언'으로 띄어쓰기 없이 출력된다. 출력 양식을 잘 봐서 띄어쓰기에도 주의하도록한다. SUBSTRING 전화번호의 양식 'xxx-xxxx-xxxx'을 만들기 위해서 사용한 함수이다. SUBSTRING(STR, star.. 2024. 2. 12.
[SQL] 자동차 평균 대여 기간 구하기 문제링크 1. 핵심 대여기간 timestampdiff(day, start, end) + 1 > 오늘 대여하고 오늘 반납해도 대여일은 1일이다. 평균 대여기간 집계함수 avg가 필요하다. car_id를 기준으로 group by를 진행해 평균 duration을 계산한다. 평균 대여기간이 7일이상이라는 조건이 있다. 반드시 문제 풀기 전에 확인한다. 2. 코드(MySQL) # 평균대여기간 7일이상 # 대여기간 +1 잊지말자! # 평균기간 내림차순 id 내림차순 with temp as ( select CAR_ID, timestampdiff(day, START_DATE, END_DATE) + 1 as DURATION from CAR_RENTAL_COMPANY_RENTAL_HISTORY ) select CAR_ID.. 2024. 2. 12.
[SQL] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/157339 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 핵심 temp 대여 가능한 car_id를 추출한다 그런데 car_id는 중복해서 나오게 되므로 car_id로 group by 진행하고 max 집계함수로 가장 최근 END_DATE를 가져온다. 그후 having문을 통해서 2022 보다 작거나 같고 10월보다 작거나 같은, 즉 대여기간에 대여할 수 있는 것을 필터링한다. temp2 temp과 CAR_RENTAL_COMPANY_CAR를.. 2024. 2. 11.
[SQL] 5월 식품들의 총매출 조회하기 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/131117 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 핵심 FOOD_ORDER 테이블에 id당 mount가 1개만 있는게 아니라 산재되어있다. 예시의 일부분이다. P0017의 AMOUNT는 1200과 1000이다. 따라서 id로 group by를 진행하고 sum를 사용해서 AMOUNT를 합칠 필요가 있다. 2. 코드(MySQL) # 생산일자 2022년 5월 식품들의 식품id, 이름, 총매출 # 총매출 내림차순, 식품id 오름차순 # .. 2024. 2. 11.
728x90
반응형