1. 조건에 부합하는 중고거래 상태 조회하기
코딩테스트 연습 - 조건에 부합하는 중고거래 상태 조회하기 | 프로그래머스 스쿨 (programmers.co.kr) |
풀이 |
1. 출력할 게시글 ID, 작성자 ID, 게시글 제목, 가격은 SELECT로 호출한다. 2. 거래 상태는 CASE-END를 사용해 각각 한글로 바꿔준다. 3. 조건에 맞는 날짜를 선택할 때에는 CREATED_DATE가 DATE타입이므로, DATE_FORMAT을 사용한다. 4. 내림차순 정렬은 ORDER BY ~~~ DESC |
회고 |
- DATE_FORMAT에서 맨 앞(연)은 대문자!! |
코드 (접은 글) |
더보기
SELECT BOARD_ID, WRITER_ID, TITLE, PRICE,
(CASE WHEN STATUS = 'SALE' THEN '판매중'
WHEN STATUS = 'RESERVED' THEN '예약중'
WHEN STATUS = 'DONE' THEN '거래완료'
END) AS STATUS
FROM USED_GOODS_BOARD
WHERE DATE_FORMAT(CREATED_DATE,'%Y-%m-%d') = '2022-10-05'
ORDER BY BOARD_ID DESC
2. 자동차 평균 대여 기간 구하기
코딩테스트 연습 - 자동차 평균 대여 기간 구하기 | 프로그래머스 스쿨 (programmers.co.kr) |
풀이 |
1. SELECT 문에 목록을 새로 생성해야 하므로 계산식 AS AVERAGE_DURATION 1-1. ROUND, AVG를 통해 평균일을 계산한 후 소수 둘째 자리에서 반올림 2. 자동차 목록이 필요한 것이므로 GROUP BY CAR_ID 3. HAVING으로 평균 기간 7일 이상으로 거름 4. 내림차순 정렬 |
회고 |
- ORDER 오타좀 내지 말자 ㅡㅡ - ROUND = 반올림 - TRUNC = 반내림 |
코드 (접은 글) |
더보기
SELECT CAR_ID, ROUND(AVG(DATEDIFF(END_DATE, START_DATE)+1), 1) AS AVERAGE_DURATION
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
HAVING AVERAGE_DURATION >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC
3. 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
코딩테스트 연습 - 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 | 프로그래머스 스쿨 (programmers.co.kr) |
풀이 |
1. SELECT에서 우선 모든 행을 세는 COUNT(*)를 사용한 후 AS CARS로 바꾼다. 2. OPTIONS의 타입이 VARCHAR이므로, '시트'가 포함된 행을 찾으려면 OPTIONS LIKE '%시트%' 2-1. ~~시트가 문장 사이에 있으므로 '시트'의 앞뒤에 %를 붙여주는 것이 확실한 답안 3. CAR_TYPE으로 묶어준다 4. CAR_TYPE을 기준으로 오름차순 정렬 |
회고 |
- 문장 안에서 찾는 건 : 열 이름 LIKE '%찾을 내용%' |
코드 (접은 글) |
더보기
SELECT CAR_TYPE, COUNT(*) AS CARS
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '%시트%'
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE
4. 조건에 맞는 도서와 저자 리스트 출력하기
코딩테스트 연습 - 조건에 맞는 도서와 저자 리스트 출력하기 | 프로그래머스 스쿨 (programmers.co.kr) |
풀이 |
회고 |
- 날짜 불러올때마다 DATE_FORMAT(열 이름, '%Y-%m-%d') 쓰는거 너무너무너무 귀찬하 |
코드 (접은 글) |
더보기
SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d')
FROM BOOK, AUTHOR
WHERE BOOK.AUTHOR_ID = AUTHOR.AUTHOR_ID
and BOOK.CATEGORY = '경제'
ORDER BY PUBLISHED_DATE
5. 성분으로 구분한 아이스크림 총 주문량
코딩테스트 연습 - 성분으로 구분한 아이스크림 총 주문량 | 프로그래머스 스쿨 (programmers.co.kr) |
풀이 |
1. SELECT에서 SUM을 사용해 TOTAL_ORDER을 모두 더한 값을 구하고 열 이름을 TOTAL_ORDER로 한다. 2. FROM에서 두 테이블 모두 불러온 후 두 테이블의 FLAVOR가 같은 곳을 구한다. 3. INGREDIENT_TYPE이 같은 것끼리 묶고 TOTAL_ORDER순으로 정렬한다. |
회고 |
- SELECT에서 그대로 불러오는거 아니면 AS로 이름 설정해주는거 잊지말아요 ★ |
코드 (접은 글) |
더보기
SELECT INGREDIENT_TYPE, SUM(TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF, ICECREAM_INFO
WHERE FIRST_HALF.FLAVOR = ICECREAM_INFO.FLAVOR
GROUP BY INGREDIENT_TYPE
ORDER BY TOTAL_ORDER
'데이터베이스 > MySQL' 카테고리의 다른 글
[MySQL] 프로그래머스스쿨 연습문제 Lv.3 모음1 (0) | 2023.04.27 |
---|---|
[MySQL] 프로그래머스스쿨 연습문제 Lv.2 모음2 (0) | 2023.04.27 |
[MySQL] 데이터 타입 (0) | 2023.02.01 |