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, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회 # 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 # 결과는 평균점수를 기준으로 내림차순 정렬 즐겨찾기수를 기준으로 내림차순 정렬 |
무엇이 잘못되었나?
해결법
'E.코드카타 > Level 4' 카테고리의 다른 글
| 코드카타 Level.4 65~Level.5 66, 67 (0) | 2026.01.16 |
|---|---|
| 코드카타 Level.4 62~64 (0) | 2026.01.14 |
| 코드카타 Level.4 55, 57, 58 (반드시 되돌아 볼것) (0) | 2026.01.12 |
| 코드카타 Level.4 51~53 (다음에 서브쿼리로 풀어보기) (1) | 2026.01.11 |
