59. 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/157340

정답 코드:

SELECT
    CAR_ID,
    CASE
        WHEN SUM(CASE 
                    WHEN '2022-10-16' BETWEEN START_DATE AND END_DATE 
                        THEN 1
                    ELSE 0
                END) > 0
        THEN '대여중'
        ELSE '대여 가능'
    END AS 'AVAILABILITY'    
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY 
GROUP BY CAR_ID
ORDER BY CAR_ID DESC;

문제 풀이때 했던 생각.

# 2022년 10월 16일에 대여 중인 자동차인 경우 '대여중' 이라고 표시
# 대여 중이지 않은 자동차인 경우 '대여 가능'을 표시하는 컬럼
(컬럼명: AVAILABILITY)을 추가하여 자동차 ID와 AVAILABILITY 리스트를 출력
# 자동차 ID를 기준으로 내림차순 정렬


무엇이 잘못되었나?

 


해결법

 

60. 년, 월, 성별 별 상품 구매 회원 수 구하기

문제 링크:

정답 코드:

SELECT
    YEAR(OS.SALES_DATE) AS YEAR,
    MONTH(OS.SALES_DATE) AS MONTH,
    UI.GENDER,
    COUNT(DISTINCT OS.USER_ID) AS USERS
FROM ONLINE_SALE OS
INNER JOIN USER_INFO UI
    ON OS.USER_ID = UI.USER_ID
WHERE UI.GENDER IS NOT NULL
GROUP BY
    YEAR(OS.SALES_DATE),
    MONTH(OS.SALES_DATE),
    UI.GENDER
ORDER BY
    YEAR(OS.SALES_DATE) ASC,
    MONTH(OS.SALES_DATE) ASC,
    UI.GENDER ASC;

 

문제 풀이때 했던 생각.

# USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계
# 결과는 년, 월, 성별을 기준으로 오름차순 정렬
# 성별 정보가 없는 경우 결과에서 제외
# GENDER IS NOT NULL


무엇이 잘못되었나?

 


해결법

 

61. 서울에 위치한 식당 목록 출력하기

문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/131118

정답 코드:

SELECT
    RI.REST_ID,
    RI.REST_NAME,
    RI.FOOD_TYPE,
    RI.FAVORITES,
    RI.ADDRESS,
    ROUND(AVG(RR.REVIEW_SCORE), 2) AS SCORE
FROM REST_INFO RI
INNER JOIN REST_REVIEW RR
ON RI.REST_ID = RR.REST_ID
WHERE ADDRESS LIKE '서울%'
GROUP BY     
    RI.REST_ID
ORDER BY 
    SCORE DESC, 
    RI.FAVORITES DESC

 

문제 풀이때 했던 생각.

# 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회
# 리뷰 평균점수는 소수점 세 번째 자리에서 반올림
# 결과는 평균점수를 기준으로 내림차순 정렬 즐겨찾기수를 기준으로 내림차순 정렬


무엇이 잘못되었나?

 


해결법

 

 

+ Recent posts