데이터 분석/SQL

[SQL 문법] GROUP BY

참치바나나 2020. 11. 4. 12:37

특정 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