Step-by-Step
[프로그래머스] SQL 도장깨기 (Level 1) 본문
특정 옵션이 포함된 자동차 리스트 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/157343
SELECT * FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE '%네비게이션%' ORDER BY CAR_ID DESC;
- Like 사용해서 특정 문자열 포함된 경우만 select
루시와 엘라 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/59046
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
ORDER BY ANIMAL_ID;
- IN 연산자 사용해서 특정 값이 포함되어 있는지 확인
이름에 el이 들어가는 동물 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/59047
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE UPPER(NAME) LIKE '%EL%' AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME;
- UPPER 사용해서 모두 UPPER CASE로 만든 후 EL이 들어가는지 확인
자동차 대여 기록에서 장기/단기 대여 구분하기 ★ ★
https://school.programmers.co.kr/learn/courses/30/lessons/151138
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) < 29 THEN '단기 대여'
ELSE '장기 대여'
END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE MONTH(START_DATE) = "9"
ORDER BY HISTORY_ID DESC;
- MONTH 추출을 위해 DATE_FORMAT으로 형식 맞추기
- 년 %Y // 월 %m // 일 %d
- CASE로 DATEDIFF(끝나는 일 , 시작하는 일) < 29 (원래 실제 날짜 차이는 DATEDIFF() +1 <= 29인데 그냥 DATEDIFF() < 29 로 한거임)
- MONTH 추출해서 9인 경우 뽑음
평균 일일 대여 요금 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/151136
SELECT ROUND(AVG(DAILY_FEE),0) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV';
- ROUND(값, 소숫점자리) => 소숫점자리까지 반올림!!!!!
- AVG(값) => 평균
조건에 맞는 도서 리스트 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/144853
SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE, "%Y-%m-%d") AS PUBLISHED_DATE
FROM BOOK
WHERE YEAR(PUBLISHED_DATE) = "2021" AND CATEGORY = "인문";
- YEAR 추출을 위해 DATE_FORMAT 맞추기
과일로 만든 아이스크림 고르기
https://school.programmers.co.kr/learn/courses/30/lessons/133025
SELECT A.FLAVOR
FROM FIRST_HALF AS A
LEFT JOIN ICECREAM_INFO AS B
ON A.FLAVOR = B.FLAVOR
WHERE B.INGREDIENT_TYPE = 'fruit_based' AND A.TOTAL_ORDER > 3000
ORDER BY A.TOTAL_ORDER DESC;
- LEFT JOIN 실행하고 첫 테이블 A 두번째 테이블 B로 선언
- 맛을 기준으로 LEFT JOIN
- 문제 조건에 맞게 WHERE 절 만듦
인기 있는 아이스크림
https://school.programmers.co.kr/learn/courses/30/lessons/133024
SELECT FLAVOR
FROM FIRST_HALF
ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID ASC;
- ORDER BY 여러개 사용하는 경우 나타냄
- 우선순위대로 적어주면 된다.
'언어 > MySQL' 카테고리의 다른 글
[프로그래머스] SQL 도장깨기 (Level 2) (0) | 2023.04.26 |
---|
Comments