SQL

[실전] GROUP BY, AS, ORDER BY

Bordercolli 2023. 8. 28. 10:09
728x90

🐕‍🦺 실습문제(GROUP BY)

그룹화를 하는 이유: 그룹화를 해서 각 그룹별로 집계를 하기 위함.

※ GROUP BY는 거의 맨 끝에 쓴다.

 

SELECT 컬럼 FROM 테이블명 GROUP BY 컬럼;     # 테이블의 컬럼 값을 그룹핑 하여라.

SELECT COUNT(*) FROM 테이블명 GROUP BY 컬럼;    # 그룹이 몇 개인지 출력해줌.

SELECT COUNT(*) FROM 테이블명 WHERE 조건문 GROUP BY 컬럼;     # 조건에 맞는 데이터를 컬럼별로 그룹화하라.

 

문제1. 영화 테이블에서 매겨진 등급 종류들을 모두 출력하시오 (GROUP BY사용)

문제2. film에 매겨진 등급 종류에 따른 영화 개수를 모두 출력하라.

문제3. 영화테이블에서 영화가 pg또는 g등급의 영화 수를 각 등급별로 출력하라.

문제4. 영화테이블에서 G등급인 영화제목을 출력하라.

문제5. 영화테이블에서 PG 또는 G등급인 영화 제목을 출력하라.

문제6. 영화테이블에서 출시연도가 2006 또는 2007이고, 등급이 PG 또는 G등급인 영화제목을 출력하라. (중복 조건문)

문제7. 영화테이블에서 rating으로 그룹을 묶어서, 각 등급별로 영화개수와 각 그룹별 평균 렌탈비용(rental_rate)를 출력하라.

이렇게 해도 되고

COUNT(*) 이렇게 해도 된다.

🐕‍🦺 실습문제(ORDER BY)

높은 순으로 보여준다든지 / 낮은 순으로 보여준다든지 정렬을 해주는 것 (GROUP BY는 그룹핑, ORDER BY는 쏘팅)

 

SELECT * FROM 테이블 ORDER BY 정렬할 컬럼 DESC/ ASC;

SELECT * FROM film WHERE 조건문 ORDER BY 정렬할 컬럼 ASC/ DESC;

SELECT COUNT() FROM 테이블 WHERE 조건문 GROUP BY 컬럼 ORDER BY COUNT() DESC/ASC;

 

순서: WHERE > GROUP BY > ORDER BY > LIMIT

 

문제8. 영화테이블에서 등급으로 그룹을 묶어서 각 등급별 영화 개수와 각 등급별 평균렌탈 비용을 출력하되 평균 렌탈 비용이 높은 순으로 출력하기(등급, 각 등급별 개수, 각 등급별 평균렌탈비용 출력)

이렇게 해도 되고

 

order by에 별칭사용

문제9. 영화테이블에서 rating으로 그룹을 묶어서 각 등급별 영화개수와 등급, 각 그룹별 평균 렌탈 비용을 출력하되 각각 total_films, avg_rental_rate로 출력하고 avg_rental rate가 높은 순으로 출력하라.

문제10. 각 등급별 영화 길이가 130분 이상인 영화의 개수와 등급을 출력하여라. (영화길이: length )

정리
GROUP BY는 그룹핑, ORDER BY는 소팅
순서: WHERE > GROUP BY > ORDER BY 

'SQL' 카테고리의 다른 글

HAVING  (0) 2023.08.28
[🎉중급🎉] 외래키  (1) 2023.08.28
[실전] LIMIT, COUNT, DISTINCT, 집계함수  (0) 2023.08.25
[더 알아가기]MySQL관리를 위한 SQL이해  (0) 2023.08.25
SQL로 데이터 수정/ 삭제/ 활용  (0) 2023.08.24