본문 바로가기

프로그래머스34

[MYSQL 46] 자동차 평균 대여 기간 구하기 자동차 평균 대여 기간 구하기 (LEVEL2) 평균 대여 기간이 7일 이상인 자동차자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION) 리스트를 출력(평균 대여 기간은 소수점 두번째 자리에서 반올림)정렬 평균 대여 기간 내림차순, 자동차 ID 내림차순 정답 코드SELECT CAR_ID, ROUND(AVG(DATEDIFF(END_DATE, START_DATE) + 1), 1) AS AVERAGE_DURATIONFROM CAR_RENTAL_COMPANY_RENTAL_HISTORYGROUP BY CAR_IDHAVING AVERAGE_DURATION >= 7ORDER BY AVERAGE_DURATION DESC, CAR_ID DESCMEMO날짜 차이는 별도의 명령어를 사용해야 함 DATEDIF.. 2024. 10. 27.
[MYSQL 45] 조건에 부합하는 중고거래 상태 조회하기 조건에 부합하는 중고거래 상태 조회하기 (LEVEL2) 2022년 10월 5일에 등록된 중고거래 게시물의 게시글 ID, 작성자 ID, 게시글 제목, 가격, 거래상태를 조회거래상태가 SALE 이면 판매중, RESERVED이면 예약중, DONE이면 거래완료 분류하여 출력 정렬 게시글 ID 내림차순정답 코드SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, CASE STATUS WHEN 'SALE' THEN '판매중' WHEN 'DONE' THEN '거래완료' WHEN 'RESERVED' THEN '예약중' END AS STATUSFROM USED_GOODS_BOARDWHERE CREATED_DATE = '2022-10.. 2024. 10. 26.
[MYSQL 44] 연도 별 평균 미세먼지 농도 조회하기 연도 별 평균 미세먼지 농도 조회하기 (LEVEL2)  수원 지역의 연도 별 평균 미세먼지 오염도와 평균 초미세먼지 오염도를 조회평균 미세먼지 오염도와 평균 초미세먼지 오염도의 컬럼명은 각각 PM10, PM2.5, 값은 소수 셋째 자리에서 반올림 정렬 연도 오름차순 정답 코드SELECT YEAR(YM) AS YEAR, ROUND(SUM(PM_VAL1) / COUNT(PM_VAL1), 2) AS 'PM10', ROUND(SUM(PM_VAL2) / COUNT(PM_VAL2), 2) AS 'PM2.5'FROM AIR_POLLUTIONWHERE LOCATION2 = '수원'GROUP BY YEARORDER BY YEAR MEMOSUM(PM_VAL1) / COUNT(PM_VAL1) 대신 AVG( P.. 2024. 10. 25.
[MYSQL 43] 중성화 여부 파악하기 중성화 여부 파악하기 (LEVEL2) 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회 (이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시) 정답 코드SELECT ANIMAL_ID, NAME, (CASE WHEN SEX_UPON_INTAKE REGEXP ('Neutered|Spayed') THEN 'O' ELSE 'X' END) AS 중성화FROM ANIMAL_INSMEMOLIKE OR 하고 싶을때는 REGEXP 활용WHEN END 대신 IF 사용SELECT .. 2024. 10. 24.
[MYSQL 42] 카테고리 별 상품 개수 구하기 카테고리 별 상품 개수 구하기 (LEVEL2) 상품 카테고리 코드(PRODUCT_CODE 앞 2자리) 별 상품 개수를 출력정렬 상품 카테고리 코드 오름차순  정답 코드SELECT SUBSTR(PRODUCT_CODE, 1, 2) AS CATEGORY, COUNT(*) AS PRODUCTSFROM PRODUCTGROUP BY CATEGORYORDER BY CATEGORYMEMOSUBSTR(열, 시작인덱스, 길이), mySQL 인덱스 번호는 1부터 시작비슷한 기능은로 LEFT,(문자열, 길이) RIGHT(문자열, 길이) 도 있음 [MySQL] SQL 문자열 자르기 - SUBSTR / SUBSTRING / LEFT / RIGHTSUBSTR(문자열, 시작 위치, 길이)문자열 : 원하는 문자열(대상 칼럼)시작 위치.. 2024. 10. 21.
[MYSQL 41] 이름에 el이 들어가는 동물 찾기 이름에 el이 들어가는 동물 찾기 (LEVEL2) 이름에 "EL"이 들어가는 개 (단, 이름의 대소문자는 구분하지 않습니다)아이디와 이름을 조회하는 SQL문을 작성정렬 이름 순 오름차순정답 코드SELECT ANIMAL_ID, NAMEFROM ANIMAL_INSWHERE NAME LIKE "%el%" AND ANIMAL_TYPE = "Dog"ORDER BY NAMEMEMOmySQL 문법은 대소문자를 구분하지 않음. 구분하고 싶다면 BINARY 활용 (바이트 비교) [MySQL] 대소문자 구분하여 비교 및 검색 (BINARY)MySQL은 비교나 검색을 수행할 때 기본적으로 대소문자 구분 없이 비교 및 검색이 가능하다. 이에 따라 아이디나 패스워드 등 대소문자가 엄격히 구분되어야 하는 경우엔 서로 다른 값으로.. 2024. 10. 20.