입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/59411
SELECT
outs.ANIMAL_ID, outs.NAME
FROM
ANIMAL_INS ins
INNER JOIN
ANIMAL_OUTS outs
ON
ins.ANIMAL_ID = outs.ANIMAL_ID
ORDER BY
DATEDIFF(outs.DATETIME, ins.DATETIME) DESC -- 날짜의 뺄셈 연산
LIMIT 2
CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 자동차 종류가 '세단'인 자동차들 중 10월에 대여를 시작한 기록이 있는 자동차 ID 리스트를 출력하는 SQL문을 작성해주세요. 자동차 ID 리스트는 중복이 없어야 하며, 자동차 ID를 기준으로 내림차순 정렬해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/157341
SELECT
DISTINCT his.CAR_ID -- 중복 제외
FROM
CAR_RENTAL_COMPANY_CAR car
INNER JOIN
CAR_RENTAL_COMPANY_RENTAL_HISTORY his
ON
car.CAR_ID = his.CAR_ID
WHERE
MONTH(his.START_DATE) LIKE '%10%' -- 10월 대여 기록
AND
car.CAR_TYPE = '세단' -- 세단 종류
ORDER BY
his.CAR_ID DESC
DISTINCT를 이용하여 중복을 제외한 값만 출력하는 것이 키워드.USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 중고 거래 게시물을 3건 이상 등록한 사용자의 사용자 ID, 닉네임, 전체주소, 전화번호를 조회하는 SQL문을 작성해주세요. 이때, 전체 주소는 시, 도로명 주소, 상세 주소가 함께 출력되도록 해주시고, 전화번호의 경우 xxx-xxxx-xxxx 같은 형태로 하이픈 문자열(-)을 삽입하여 출력해주세요. 결과는 회원 ID를 기준으로 내림차순 정렬해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/164670
# board에서 3건 이상 등록한 사용자만 추출 후 유저 테이블 결합
WITH user3 AS (
SELECT WRITER_ID, COUNT(WRITER_ID)
FROM USED_GOODS_BOARD
GROUP BY WRITER_ID
HAVING COUNT(WRITER_ID) >= 3 -- 3건 이상
)
-- 출력할 때 전화번호 형식 맞추기
SELECT u.USER_ID, u.NICKNAME,
CONCAT(u.CITY,' ',u.STREET_ADDRESS1,' ', u.STREET_ADDRESS2) '전체주소',
CONCAT(SUBSTR(u.TLNO, 1, 3),'-',SUBSTR(u.TLNO, 4, 4),'-',SUBSTR(u.TLNO, 8, 4)) '전화번호'
FROM USED_GOODS_USER u
RIGHT JOIN user3 u3
ON u.USER_ID = u3.WRITER_ID
ORDER BY u.USER_ID DESC