출처
문제
CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 자동차 종류가 '세단'인 자동차들 중 10월에 대여를 시작한 기록이 있는 자동차 ID 리스트를 출력하는 SQL문을 작성해주세요. 자동차 ID 리스트는 중복이 없어야 하며, 자동차 ID를 기준으로 내림차순 정렬해주세요.
문제에 대한 해석
1. 테이블 조인
2. 조건: 세단, 10월 대여 시작
3. 정렬: id 내림차순
풀이(MYSQL)
select distinct(car.car_id)
from CAR_RENTAL_COMPANY_CAR car, CAR_RENTAL_COMPANY_RENTAL_HISTORY his
where car.car_id = his.car_id
and month(his.start_date)= 10
and car.car_type = '세단'
order by 1 desc
작동순서
💡SQL 실행 순서는 From -> Where -> Group by -> Having -> Select -> Order by ->결과반환
- FROM 절: CAR_RENTAL_COMPANY_CAR 와 CAR_RENTAL_COMPANY_RENTAL_HISTORY 연결
- WHERE 절: 두 테이블에 car_id가 같은것 끼리 조인하고, start_date의 월이 10월이고 car_type이 세단인것만 필터링
- SELECT 절: car.car_id의 중복을 제거해 조회
- ORDER BY 절: car.car_id 내림차순
출처
문제
MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요. 이때 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고, 결과는 회원ID를 기준으로 오름차순 정렬해주세요.
문제에 대한 해석
1. 조건: 생일 3월, 여성, 전화번호 null제외
2. 조회: Id,성별, 생년월일
3. 정렬: id 오름차순
풀이(MYSQL)
select member_id, member_name, gender, date_format(date_of_birth,'%Y-%m-%d')
from member_profile
where tlno is not null and gender = 'W' and month(date_of_birth)=3
order by member_id
작동순서
💡SQL 실행 순서는 From -> Where -> Group by -> Having -> Select -> Order by ->결과반환
- FROM 절: member_profile테이블에서
- WHERE 절: tlno의 데이터가 모두 있고, 성별이 W이고 date_of_birth의 월이 3인 데이터를 필터링
- SELECT 절: member_id, member_name, gender, '%Y-%m-%d'형식으로 된 date_of_birth
- ORDER BY 절: member_id 오름차순
'문제풀이 > SQL(My sql)' 카테고리의 다른 글
[문제풀이] 즐겨찾기가 가장 많은 식당 정보 출력하기-window(?) (1) | 2024.01.11 |
---|---|
[문제풀이] 거래가격 조회/가격대 별 상품 개수 구하기 (0) | 2024.01.10 |
[문제풀이] SQL 개인과제 (고급 1) (0) | 2024.01.09 |
[문제풀이] 조건에 맞는 도서 리스트 출력하기/ 평균 일일 대여 요금 구하기 (0) | 2024.01.09 |
[문제풀이] 루시와 엘라 찾기/성분으로 구분한 아이스크림 총 주문량 (0) | 2024.01.09 |