문제 1 - 자동차 대여 기록에서 장기/단기 대여 구분하기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/151138
2. 작성한 코드
- DATEDIFF () : 두개의 날짜값의 차이를 int로 반환하는 내장함수이다.
- 마자막 날짜에서 시작 날짜의 차이를 구하면 하루를 포함하지 않는 값이 나오므로 +1 해줘야 한다.
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
, (CASE
WHEN (DATEDIFF(END_DATE, START_DATE) + 1) >= 30 THEN "장기 대여"
ELSE "단기 대여"
END) as RENT_TYPE
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
where START_DATE like '2022-09%'
order by HISTORY_ID desc
문제 2 - 특정 옵션이 포함된 자동차 리스트 구하기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/157343
2. 작성한 코드
SELECT CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS
from CAR_RENTAL_COMPANY_CAR
where OPTIONS LIKE '%네비게이션%'
order by CAR_ID DESC
문제 3 - 과일로 만든 아이스크림 고르기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/133025
2. 작성한 코드
SELECT A.FLAVOR
FROM FIRST_HALF A, ICECREAM_INFO B
WHERE (A.FLAVOR = B.FLAVOR
AND B.INGREDIENT_TYPE = "fruit_based"
AND A.TOTAL_ORDER > 3000)
ORDER BY A.TOTAL_ORDER DESC
문제 4 - 인기있는 아이스크림
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/133024
2. 작성한 코드
SELECT FLAVOR
FROM FIRST_HALF
ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID
문제 5 - 흉부외과 또는 일반외과 의사 목록 출력하기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/132203
2. 작성한 코드
SELECT DR_NAME
, DR_ID
, MCDP_CD
, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMD
FROM DOCTOR
where MCDP_CD IN ("CS", "GS")
order by HIRE_YMD desc, DR_NAME
문제 6 - 12세 이하인 여자 환자 목록 출력하기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/132201
2. 작성한 코드
SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, "NONE") AS TLNO
FROM PATIENT
WHERE GEND_CD = "W"
AND AGE <= 12
ORDER BY AGE DESC, PT_NAME
문제 7 - 가장 비싼 상품 구하기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/131697
2. 작성한 코드
SELECT MAX(PRICE) AS MAX_PRICE
FROM PRODUCT
문제 8 - 조건에 맞는 회원수 구하기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/131697
2. 작성한 코드
SELECT COUNT(USER_ID) AS USERS
FROM USER_INFO
WHERE JOINED LIKE "2021%"
AND AGE BETWEEN 20 AND 29
문제 9 - 나이 정보가 없는 회원 수 구하기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/131528
2. 작성한 코드
SELECT COUNT(USER_ID) AS USERS
FROM USER_INFO
WHERE AGE IS NULL
문제 10 - 경기도에 위치한 식품창고 목록 출력하기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/131114
2. 작성한 코드
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, "N")
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE "경기도%"
ORDER BY WAREHOUSE_ID
문제 11 - 강원도에 위치한 생산공장 목록 출력하기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/131112
2. 작성한 코드
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE "강원도%"
ORDER BY FACTORY_ID
문제 12 - 경기도에 위치한 식품창고 목록 출력하기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/59415
2. 작성한 코드
SELECT MAX(DATETIME) AS 시간
FROM ANIMAL_INS
문제 13 - 이름이 있는 동물의 아이디
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/59407
2. 작성한 코드
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
ORDER BY ANIMAL_ID
문제 14 - 상위 n개 레코드
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/59405
2. 작성한 코드
- MySQL에서 상위 N개의 데이터를 출력하기 위해선 LIMIT N 함수를 사용한다.
- ORACLE : ROWNUM < N
- MS - SQL : TOP N, TOP N WITH TIES
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1
문제 15 - 여러 기준으로 정렬하기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/59404
2. 작성한 코드
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME, DATETIME DESC
문제 16 - 동물의 아이디와 이름
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/59403
2. 작성한 코드
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
문제 17- 이름이 없는 동물의 아이디
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/59039
2. 작성한 코드
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL
ORDER BY ANIMAL_ID
문제 18 - 어린 동물 찾기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/59037#fn1
2. 작성한 코드
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION != "Aged"
ORDER BY ANIMAL_ID
문제 19 - 아픈 동물 찾기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/59036
2. 작성한 코드
SELECT ANIMAL_ID, NAME
from ANIMAL_INS
where INTAKE_CONDITION = "Sick"
order by ANIMAL_ID
문제 20 - 역순 정렬하기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/59035
2. 작성한 코드
SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC
문제 21 - 모든 레코드 조회하기
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/59034
2. 작성한 코드
SELECT ANIMAL_ID
, ANIMAL_TYPE
, DATETIME
, INTAKE_CONDITION
, NAME
, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
'Digital Boot > Programmers' 카테고리의 다른 글
[Programmers][Java] 프로그래머스 코딩테스트 Lv. 1 - 개인정보 수집 유효기간 (2) | 2023.12.06 |
---|---|
[Programmers][Java] 프로그래머스 코딩테스트 Lv. 1 - 카드 뭉치 (1) | 2023.12.01 |
[Programmers][Java] 프로그래머스 코딩테스트 Lv. 1 - 과일 장수 (3) | 2023.11.30 |
[Programmers][SQL] 프로그래머스 코딩테스트 Lv. 1 - 평균 일일 대여 요금 구하기 / 조건에 맞는 도서 리스트 출력하기 (0) | 2023.11.28 |
[Programmers][Java] 프로그래머스 코딩테스트 Lv. 1 - 바탕화면 정리 (0) | 2023.11.28 |