카테고리 없음
PostgreSQL 문제 (2)
16비트
2023. 1. 17. 18:47
섹션 2 GROUP BY문, HAVING문
1. 최소 교체 비용이 얼마인지 출력
SELECT MIN(replacement_cost) FROM film;
2. 소수점 2째 자리 반올림 하여 평균 교체 비용 얼마인지 출력
- 평균 값을 출력하면 소수점이 크게 나오기 때문에 ROUND를 써야한다.
SELECT ROUND(AVG(replacement_cost),2) FROM film;
3. 총 영화 교체 비용 출력
SELECT SUM(replacement_cost) FROM film;
4. 가장 많은 금액을 사용한 고객 ID를 내림차순별로 출력
SELECT customer_id,SUM(amount) FROM payment GROUP BY customer_id ORDER BY SUM(amount) DESC;
5. Staff ID가 1과 2인 두 명의 직원이 있습니다. 가장 많은 결제를 처리한 직원에게 보너스를 주려고 한다. 각 직원이 처리한 결제건수는 몇 건이며 누가 보너스를 받는가?
SELECT staff_id COUNT(amount) FROM payment GROUP BY staff_id;
6. 본사에서 교체 비용과 영화의 MPAA 등급 사이의 관계에 관한 연구를 수행하고 있습니다. MPAA 등급별 평균 교체 비용은 얼마인가?
SELECT rating, ROUND(AVG(replacement_cost),2) FROM film GROUP BY rating;
7. 총 지출액 또는 총 사용을 기준으로 상위 고객 5명의 고객 ID를 출력
SELECT customer_id, SUM(amount) FROM payment GROUP BY customer_id ORDER BY SUM(amount) DESC LIMIT 5;
8. 총 사용 금액이 100달러 이상인 고객ID만 추출
- WHERE문으로 GROUP BY문 전에 필터링할 수 있지만 SUM(amount)는 HAVING문으로 필터링 해야한다.
SELECT customer_id,SUM(amount) FROM payment GROUP BY customer_id HAVING SUM(amount) > 100;
9. 충성도가 가장 높은 고객을 위한 플래티넘 서비스를 시작하려 한다. 결제 거래 건수가 40건 이상인 고객에게 플래티넘 지위를 할당하려 한다. 플래티넘 자격이 있는 고객 ID는 누구인가?
SELECT customer_id,COUNT() FROM payment GROUP BY customer_id HAVING COUNT() ≥40;
10. 직원 ID 2와의 결제 거래에서 100달러를 초과하여 사용한 고객의 ID는 무엇인가?
SELECT customer_id,SUM(amount) FROM payment WHERE staff_id = 2 GROUP BY customer_id HAVING SUM(amount)>100;
11. ID가 2인 직원에게서 최소 110달러를 쓴 고객의 ID를 찾으십시오.
SELECT customer_id,SUM(amount) FROM payment WHERE staff_id = 2 GROUP BY customer_id HAVING SUM(amount) > 110;
12. J로 시작하는 영화는 몇 편입니까?
SELECT COUNT(*) FROM film WHERE title LIKE 'J%';
13. 이름이 ‘E’로 시작하는 동시에 주소 ID가 500 미만인 고객 중, ID 번호가 가장 높은 고객은 누구입니까?
SELECT first_name,last_name FROM customer WHERE first_name LIKE 'E%' AND address_id <500 ORDER BY customer_id DESC LIMIT 1;