SQL 쿼리 연습/String, Date 9

[Lv.1 / 프로그래머스 / SQL] 자동차 대여 기록에서 장기/단기 대여 구분하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 2022년 9월에 대여한 자동차를 대여 기간에 따라 단기/장기 여부를 함께 조회해야 한다. START_DATE와 END_DATE 컬럼의 경우 포맷을 예시 출력과 동일하게 해야 함에 주의해야 한다. 여기서, 9월1일에 빌려서 9월1일에 반납한 것도 하루로 쳐야 하므로 DATEDIFF 함수의 결과값에 1을 더하여 계산해야 SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, "%Y-%m-%d") AS START_DATE, DATE_FORMAT(END_DAT..

[Lv.3 / 프로그래머스 / SQL] 오랜 기간 보호한 동물 (2)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 입양을 간 동물 중, 가장 오랜 기간 보호되었던 동물 두 마리를 조회해야 한다. Inner Join을 통해 두 테이블 모두에 존재하는 동물 데이터를 가져온 뒤, 보호소에 들어온 시점과 입양을 간 시점의 차이를 구해 그 차가 큰 순으로 내림차순 정리하면 된다. SELECT INS.ANIMAL_ID, INS.NAME FROM ANIMAL_INS AS INS INNER JOIN ANIMAL_OUTS AS OUTS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID ORDER BY OUT..

[Lv.2 / 프로그래머스 / SQL] 조건에 부합하는 중고거래 상태 조회하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 2022년 10월 5일에 등록된 데이터를 상태에 따라 알맞게 변환한 형태로 조회해야 한다. IF문을 사용할 수도 있지만, 가독성을 위해 CASE문을 사용했다. SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, CASE STATUS WHEN "DONE" THEN "거래완료" WHEN "SALE" THEN "판매중" ELSE "예약중" END AS STATUS FROM USED_GOODS_BOARD WHERE CREATED_DATE = '2022-10-05' ORDER..

[Lv.2 / 프로그래머스 / SQL] DATETIME에서 DATE로 형 변환

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) DATETIME을 DATE형태로 변환하여 출력해야 한다. DATE() 함수를 사용할 경우 값은 DATE 형으로 바뀌나, 출력 형태에 시간이 남아있기 때문에 DATE_FORMAT을 사용해야 한다. SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, "%Y-%m-%d") AS 날짜 FROM ANIMAL_INS ORDER BY ANIMAL_ID

[Lv.2 / 프로그래머스 / SQL] 중성화 여부 파악하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) SEX_UPON_INTAKE 컬럼에 Neutered, 혹은 Spayed의 포함 여부를 O, X로 표기하는 컬럼을 추가하여 조회해야 한다. CASE, 혹은 IF문을 활용하여 해결할 수 있다. IF SELECT ANIMAL_ID, NAME, IF (SEX_UPON_INTAKE LIKE "%Neutered%" OR SEX_UPON_INTAKE LIKE "%Spayed%", "O", "X") AS "중성화" FROM ANIMAL_INS ORDER BY ANIMAL_ID CASE SELECT ANI..

[Lv.2 / 프로그래머스 / SQL] 이름에 el이 들어가는 동물 찾기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) ANIMAL_TYPE이 DOG이면서 이름에 'el'이 들어가는 데이터를 조회해야 한다. LIKE의 와일드카드인 %를 이용하여 해결할 수 있다. SELECT ANIMAL_ID , NAME FROM ANIMAL_INS WHERE NAME LIKE "%el%" AND ANIMAL_TYPE = "DOG" ORDER BY NAME

[Lv.2 / 프로그래머스 / SQL] 루시와 엘라 찾기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty 중 하나일 경우를 조회해야 한다. 이렇게 여러 개의 스트링에 속하는지 여부를 판별할 때에는 IN 을 사용하면 편하게 구현할 수 있다. SELECT ANIMAL_ID , NAME , SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ("Lucy", "Ella", "Pickle", "Rogan", "Sabrina", "Mitty") ORDER BY ANIMAL_ID

[Lv.2 / 프로그래머스 / SQL] 자동차 평균 대여 기간 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 대여 기간이 평균 7일 이상인 자동차의 ID와 그 평균 기간을 조회해야 한다. DATE 타입의 두 날짜의 차이를 구해야 하므로 DATEDIFF 함수를 사용했다. AVERAGE_DURATION이 7일 이상인 조건을 적어야 할 때, WHERE이 아닌 HAVING을 사용해야 함을 주의해야 한다. 관련 포스팅은 아래에 기재되어 있다. [SQL] Select절에 별칭(AS) 사용 후 Where절 Unknown Column 발생 이유 에러 메시지 SQL 오류 (1054): Unknown column ..

[Lv.1 / 프로그래머스 / SQL] 특정 옵션이 포함된 자동차 리스트 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) LIKE를 통해 OPTIONS 안의 문자열에 '네비게이션'이 포함되어 있는지 검사한다. 이후 ORDER BY 로 정렬하되, DESC를 이용하여 내림차순으로 정렬한다. SELECT CAR_ID , CAR_TYPE , DAILY_FEE , OPTIONS FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE "%네비게이션%" ORDER BY CAR_ID DESC

반응형