【실습】 데이터 조회 및 필터링
[1] PAYMENT 테이블에서 단일 거래의 AMOUNT의 액수가 가장 많은 고객들의 CUSTOMER_ID를 추출하라. 단, CUSTOMER_ID의 값은 유일해야 한다.
payment |
---|
* payment_id customer_id staff_id rental_id amount payment_date |
>> 문제 풀이
-
우선 전체 거래 중 AMOUNT의 액수가 가장 큰 AMOUNT를 구한다.
1
2
3
4SELECT AMOUNT
FROM PAYMENT
ORDER BY AMOUNT DESC
LIMIT 1
-
그 다음 PAYMENT 테이블에서 가장 큰 AMOUNT를 가진 CUMSTOMER_ID를 구하고 중복을 제거한다
1
2
3
4
5
6
7
8
9SELECT
DISTINCT A.CUSTOMER_ID
FROM PAYMENT A
WHERE A.AMOUNT = (
SELECT B.AMOUNT
FROM PAYMENT B
ORDER BY B.AMOUNT DESC
LIMIT 1
)
[2] 고객들에게 단체 이메일을 전송하고자 한다. CUSTOMER 테이블에서 고객의 EMAIL 주소를 추출하고, 이메일 형식에 맞지 않은 이메일 주소는 제외시켜라.
(이메일 형식은: '@'가 존재해야 하고; '@'로 시작하지 말아야 하고; '@'로 끝나지 말아야 한다.)
customer |
---|
* customer_id store_id first_name address_id activebool create_date last_update active |
>> 문제 풀이
1 | SELECT EMAIL |