karatejin 2022. 12. 13. 10:00

groupby

"중복되지 않은 정보를 보여주는 것"

예를 들어 이런 표가 있다고 가정한다.

상품 기준으로

SELECT	
	product_name,
	COUNT(order_id) /*행의 개수가 몇개인가? 를 알려줌 소괄호 안에 뭐가 들어가던지 상관없다.*/

FROM
	order_mst
	
GROUP BY
	product_name;

count 소괄호 안에 1이 들어가던지 order_id 가 들어가던지 상관 없다.

 

SELECT	
	product_name,
	COUNT(order_id),
	SUM(stock),
	MIN(stock),
	MAX(stock)

FROM
	order_mst
	
GROUP BY
	product_name;

 

 

SELECT	
	product_name,
	COUNT(order_id), /*행의 개수가 몇개인가를 알려줌?*/
	SUM(stock),
	MIN(stock),
	MAX(stock),
	SUM(stock) /COUNT(1),
	AVG(stock)

FROM
	order_mst
	
GROUP BY
	product_name;

 

 

SELECT
	*,
	price * stock AS totla_price /*연산이 가능하다.*/
FROM
	order_mst
GROUP BY
	order_id,
	product_name,
	price,
	stock;

price stock 다 합친 것을 곱한것

 

SELECT
	product_name,
	SUM(price * stock) AS total_price /*상품가격에 대한 총합?.*/
FROM
	order_mst
GROUP BY
	order_id,
	product_name,
	price,
	stock;

주문별 총합

 

SELECT
	product_name,
	SUM(price * stock) AS total_price /*상품가격에 대한 총합?.*/
FROM
	order_mst
GROUP BY
	product_name;

 

상품기준으로 발생한 총 매출