특정 column 기준으로 그룹을 나눈다
payment 테이블에서 각 customer 만 뽑는다
SELECT p.customer_id
FROM payment p
GROUP BY p.customer_id ;
599건이 나옴.
전에 썼던 select distinct 로 활용 가능
SELECT
DISTINCT p.customer_id
FROM payment p ;
거래액이 가장 많은 고객 순으로 뽑고 싶다
SELECT p2.customer_id
,sum( p2.amount ) AS amount_sum
FROM payment p2
GROUP BY p2.customer_id
ORDER BY amount_sum DESC ;
sum 함수 없이 쓰면 이런 오류가 나온다.
*aggregate function : 집계함수
집계함수를 쓰라고 한다.
SELECT p.staff_id
,s.first_name
, s.last_name
,count(p.payment_id) AS count
FROM payment p,staff s
WHERE p.staff_id = s.staff_id
GROUP BY p.staff_id ,s.first_name , s.last_name
;
'데이터 분석 > SQL' 카테고리의 다른 글
[SQL 문법] GROUPING SET 절, GROUPING 함수 (0) | 2020.11.04 |
---|---|
[SQL 문법] HAVING (0) | 2020.11.04 |
[SQL 문법] NATURAL JOIN (0) | 2020.11.04 |
[SQL 문법] CROSS JOIN (0) | 2020.11.04 |
[SQL 문법] FULL OUTER JOIN (0) | 2020.11.03 |