본문 바로가기

SQL

(94)
[프로그래머스/Lv.2] 루시와 엘라 찾기 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 OR로 처리할 수도 있지만, OR 기능을 하면서 특정값 여러 개를 선택할 수 있는 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.3] 조건에 맞는 사용자와 총 거래금액 조회하기 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 제출한 오답 총금액이 70만 원 이상인 사람을 조회하려고 WHERE절에 조건을 적었지만 오류가 발생하였다. 알고보니 그룹별 집계된 결과 중 원하는 조건의 결과만 필터링 하려면 HAVING절을 사용해야 했다. SELECT U.USER_ID, U.NICKNAME, SUM(B.PRICE) AS TOTAL_SALES FROM USED_GOODS_BOARD B JOIN USED_GOODS_USER U ON B.WRITER_ID = U.USER_ID WHERE B.STATUS = 'DONE' AND TOTA..
[프로그래머스/Lv.3] 대여 기록이 존재하는 자동차 리스트 구하기 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 나는 아래와 같이 JOIN을 한 후 LIKE를 이용해 10월에 대여를 시작한 기록이 있는 자동차를 조회하였다. SELECT CAR_ID FROM CAR_RENTAL_COMPANY_CAR JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY USING(CAR_ID) WHERE CAR_TYPE = '세단' AND START_DATE LIKE '%10-%' GROUP BY CAR_ID ORDER BY CAR_ID DESC 다른 답안을 보니 JOIN을 사용하지 않고 IN을 사용해 이..
[프로그래머스/Lv.1] 조건에 맞는 도서 리스트 출력하기 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 DATE_FORMAT을 이용해 예시와 동일하게 만들어주었다. SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE FROM BOOK WHERE PUBLISHED_DATE LIKE '2021%' AND CATEGORY = '인문' ORDER BY PUBLISHED_DATE ⬇️⬇️⬇️ DATE_FORMAT 정리 참고⬇️⬇️⬇️ [프로그래머스/Lv.1] 흉부외과 또는 일반외과 의사 목록 출력하기 - MySQL 📌 문제..
[프로그래머스/Lv.4] 보호소에서 중성화한 동물 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 정답은 맞았지만 LIKE 대신 NOT LIKE를 사용해서 더 간결하게 적을 수 있다는 걸 알았다. SELECT ins.ANIMAL_ID, ins.ANIMAL_TYPE, ins.NAME FROM ANIMAL_INS ins JOIN ANIMAL_OUTS outs USING(ANIMAL_ID) WHERE ins.SEX_UPON_INTAKE LIKE 'Intact%' AND (outs.SEX_UPON_OUTCOME LIKE 'Spayed%' OR outs.SEX_UPON_OUTCOME LIKE 'N..
[프로그래머스/Lv.3] 오랜 기간 보호한 동물(2) - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 (입양일 - 보호시작일)을 계산해 내림차순으로 정렬하고, 가장 상단의 데이터 2개를 출력하도록 했다. 그런데 다른 답안을 보니 날짜를 계산하는 DATEDIFF라는 함수가 따로 있었다. SELECT outs.ANIMAL_ID, outs.NAME FROM ANIMAL_INS ins JOIN ANIMAL_OUTS outs USING(ANIMAL_ID) ORDER BY outs.DATETIME - ins.DATETIME DESC LIMIT 2 아래 코드는 DATEDIFF 함수를 이용한 답안이다. S..
[프로그래머스/Lv.2] 조건에 맞는 아이템들의 가격의 총합 구하기 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 SUM을 활용해 가격의 총 합을 구하는 간단한 문제였다. SELECT SUM(PRICE) AS TOTAL_PRICE FROM ITEM_INFO WHERE RARITY = 'LEGEND'
[프로그래머스/Lv.2] 있었는데요 없었습니다 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 제출한 오답 처음엔 ON절에 NAME이 같을 경우을 조건으로 두었는데, 이름이 같은 경우도 있어 오답이 된 것 같다. SELECT ins.ANIMAL_ID, ins.NAME FROM ANIMAL_INS ins JOIN ANIMAL_OUTS outs ON ins.NAME = outs.NAME WHERE ins.DATETIME > outs.DATETIME ORDER BY ins.DATETIME 📌 정답 이름이 아닌 고유한 ID를 기준으로 JOIN을 하면 정답이 된다. SELECT ins.ANIMAL_..