본문 바로가기

SQL

[SQL] SQL 쿼리 (6)

(1) 조건에 부합하는 중고거래 상태 조회하기

https://school.programmers.co.kr/learn/courses/30/lessons/164672

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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 CREATED_DATE = '2022-10-05'
ORDER BY BOARD_ID DESC

 

CASE 문을 이용해서 여러개의 조건을 설정한다.

 

 

 

(2) 자동차 평균 대여 기간 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/157342

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

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 ROUND(AVG(DATEDIFF(END_DATE, START_DATE) + 1), 1) >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC

 

CAR_ID로 그룹화를 하고, HAVING 절에서 집계함수를 사용해 그룹별로 대여일 평균이 7일 이상인 튜플을 선택한다.

 

 

 

(3) 자동차 종류별 특정 옵션이 포함된 자동차 수 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/151137

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

SELECT CAR_TYPE, COUNT(CAR_ID) AS CARS
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '%통풍시트%'
OR OPTIONS LIKE '%열선시트%'
OR OPTIONS LIKE '%가죽시트%'
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE

 

 

 

(4) 조건에 맞는 도서과 저자 리스트 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/144854

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

- JOIN 을 사용한 코드

SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE
FROM BOOK JOIN AUTHOR USING (AUTHOR_ID)
WHERE CATEGORY = '경제'
ORDER BY PUBLISHED_DATE

 

- JOIN 을 사용하지 않은 코드

SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE
FROM BOOK A, AUTHOR B
WHERE A.AUTHOR_ID = B.AUTHOR_ID
AND CATEGORY = '경제'
ORDER BY PUBLISHED_DATE

 

두 쿼리 모두 AUTHOR_ID가 같은 튜플끼리 연결한다.

 

 

 

(5) 성분으로 구분한 아이스크림 총 주문량

https://school.programmers.co.kr/learn/courses/30/lessons/133026

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

SELECT INGREDIENT_TYPE, SUM(TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF JOIN ICECREAM_INFO USING (FLAVOR)
GROUP BY INGREDIENT_TYPE
ORDER BY TOTAL_ORDER

 

INGREDIENT_TYPE 별로 그룹화하고, 각 그룹의 합계를 계산해서 오름차순으로 정렬한다.

'SQL' 카테고리의 다른 글

[SQL] SQL쿼리 (8) QUARTER 함수  (0) 2024.05.02
[SQL] SQL 쿼리 (7)  (0) 2024.04.30
[SQL] SQL 쿼리 (5)  (0) 2024.02.21
[SQL] SQL 쿼리 (4)  (0) 2024.02.21
[SQL] SQL 쿼리 (3)  (0) 2024.02.21