Programming/Postgres DB
[PostgresDB-2] 16. 그룹화와 집계(with 마켓컬리 데이터) -GROUP BY
midnightcoder
2022. 12. 28. 17:32
참고 : https://cloudstudying.kr/lectures/511
16 그룹화(GROUP BY) | CloudStudying
# 그룹화(GROUP BY) ## 미션 --- 기존 [마켓컬리 DB](https://cloudstudying.kr/lectures/510)를 가지고, 그룹화 문제를 실습하시오. #### DB 구조도  테이블을 결제 방법에 따라 분류하고, 각각의 결제횟수를 조회하시오
- GROUP BY 쿼리에서 명시한 column을 기준으로 분류를 한다.
SELECT -- 3
ptype AS "결제 방법",
COUNT(ptype) AS "결제 횟수"
FROM -- 1
payments
GROUP BY -- 2
ptype
결과
2. 상품(products) 테이블을 보관 타입에 따라 분류하고, 각각의 상품 개수와 평균 가격을 조회하시오
-- 2. 상품 테이블을 보관 타입에 따라 분류하고, 각각의 상품 개수와 평균 가격을 조회하시오
SELECT
ptype AS "상품보관타입",
COUNT(ptype) AS "상품개수",
ROUND(AVG(price)::numeric,2) AS "평균가격"
FROM
products
GROUP BY
ptype
결과
** 여기서 소수 2째자리에서 반올림을 하기위해서
AVG함수를 ROUND로 감싸주었고, numeric,2 에서 소수 몇째 자리까지 나타낼지 명시해주었다.
3. 사용자(user)와 주문(orders) 테이블을 조인하고, 사용자 닉네임별 배송 완료 주문수를 조회하시오
-- 3. 사용자(user)와 주문(orders) 테이블을 조인하고, 사용자 닉네임별 배송 완료 주문수를 조회하시오
SELECT
users.nickname AS "사용자 닉네임",
COUNT(orders.status) AS "배송 완료 주문 수"
FROM
users
JOIN orders ON
orders.user_id = users.id
AND
orders.status = 'DELIVERED'
GROUP BY
users.nickname
결과
출처 : 홍팍의 'SQL 데이터 분석, 활용!'