[TIL] 23.03.17

문종현·2023년 3월 17일
0

TIL

목록 보기
91/119
post-custom-banner

👉 오늘 한 일

  • 프로그래머스 SQL 문제풀이

프로그래머스 SQL

1. 나이 정보가 없는 회원 수 구하기

  • lv 1, IS NULL
  • 나이 정보가 없는 회원을 WHERE절에 걸고 count
SELECT COUNT(user_id) AS users
FROM user_info
WHERE age IS NULL

2. 경기도에 위치한 식품창고 목록 출력하기

  • lv 1, IS NULL
  • IFNULL을 사용해 NULL 값을 모두 N으로 바꿔줌
SELECT warehouse_id, 
    warehouse_name, 
    address, 
    IFNULL(freezer_yn, 'N') AS freezer_yn
FROM food_warehouse
WHERE LEFT(address, 3) = '경기도'
ORDER BY warehouse_id

3. 특정 옵션이 포함된 자동차 리스트 구하기

  • lv 1, string & date
  • LIKE문을 사용해 "네비게이션"이 포함된 행 찾기
SELECT *
FROM car_rental_company_car
WHERE options LIKE "%네비게이션%"
ORDER BY car_id DESC

4. 자동차 대여 기록에서 장기/단기 대여 구분하기

  • lv 1, string & date
  • DATEDIFF 를 사용해 두 날짜의 차이가 30일부터는 장기 대여로 표기. start date는 빌린 날짜를 포함하고 있어 계산에서 제외해야 하기 때문에 함수 작성 시에는 좌변에 +1(혹은 29 이상)이 되어야 함
SELECT history_id,
    car_id,
    DATE_FORMAT(start_date, "%Y-%m-%d") AS start_date,
    DATE_FORMAT(end_date, "%Y-%m-%d") AS end_date,
    IF(DATEDIFF(end_date, start_date) + 1 >= 30, "장기 대여", "단기 대여") AS rent_type
FROM car_rental_company_rental_history
WHERE LEFT(start_date, 7) = "2022-09"
ORDER BY history_id DESC
profile
자라나라 새싹새싹🌱
post-custom-banner

0개의 댓글