Products Table
ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 |
2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19 |
3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 |
4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22 |
5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
6 | Grandma's Boysenberry Spread | 3 | 2 | 12 - 8 oz jars | 25 |
7 | Uncle Bob's Organic Dried Pears | 3 | 7 | 12 - 1 lb pkgs. | 30 |
8 | Northwoods Cranberry Sauce | 3 | 2 | 12 - 12 oz jars | 40 |
: : |
: : |
: : |
: : |
: : |
: : |
1. SupplierID로 그룹화
GRUOP별로 출력된다.
GRUOP BY절에 쓴 값은 반드시 SELECT절에도 작성해야 한다.
SELECT *, COUNT(*)
FROM Products
GROUP BY SupplierID
출력결과
ProductID | ProductName | SupplierID | CategoryID | Unit | Price | COUNT(*) |
1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 | 3 |
4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22 | 4 |
6 | Grandma's Boysenberry Spread | 3 | 2 | 12 - 8 oz jars | 25 | 3 |
: : |
: : |
: : |
: : |
: : |
: : |
: : |
> SupplierID로 그룹화하면 SupplierID별로 COUNT된다.
> 모든 컬럼에는 SupplierID별로 나누었을 때 가장 위에 있는 값이 출력된다.
2. CategoryID로 그룹화
어떤 컬럼을 그룹화를 했느냐에 따라 값이 다르다.
SELECT *, COUNT(*)
FROM Products
GROUP BY CategoryID
출력결과
ProductID | ProductName | SupplierID | CategoryID | Unit | Price | COUNT(*) |
1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 | 12 |
3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 | 12 |
16 | Pavlova | 7 | 3 | 32 - 500 g boxes | 17.45 | 13 |
: : |
: : |
: : |
: : |
: : |
: : |
: : |
> CategoryID로 그룹화하면 CategoryID별로 COUNT된다.
> 위의 '1. SupplierID로 그룹화' 할 때랑 COUNT의 값이 다르다.
> 모든 컬럼에는 CategoryID별로 나누었을 때 가장 위에 있는 값이 출력된다.
3. SupplierID, CategoryID로 그룹화
두 개의 값이 그룹화된다.
예) (SupplierID, CategoryID) > (1, 1), (1, 2), (2, 2), ...
SELECT *, COUNT(*)
FROM Products
GROUP BY SupplierID, CategoryID
출력결과
ProductID | ProductName | SupplierID | CategoryID | Unit | Price | COUNT(*) |
1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 | 2 |
3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 | 1 |
4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22 | 4 |
6 | Grandma's Boysenberry Spread | 3 | 2 | 12 - 8 oz jars | 25 | 2 |
7 | Uncle Bob's Organic Dried Pears | 3 | 7 | 12 - 1 lb pkgs. | 30 | 1 |
: : |
: : |
: : |
: : |
: : |
: : |
: : |
> SupplierID, CategoryID로 그룹화하면 (SupplierID, CategoryID)별로 COUNT된다.
> 모든 컬럼에는 (SupplierID, CategoryID)별로 나누었을 때 가장 위에 있는 값이 출력된다.
참고)
2023.05.19 - [SQL/초급] - MAX, MIN, SUM, AVG, COUNT 사용하기 (GROUP BY, HAVING)
'MYSQL' 카테고리의 다른 글
INNER JOIN, SELF JOIN (0) | 2023.05.20 |
---|---|
MAX, MIN, SUM, AVG, COUNT 사용하기 (GROUP BY, HAVING) (0) | 2023.05.19 |
반올림, 올림, 버림 (ROUND, CEILING, FLOOR, TRUNCATE) (0) | 2023.05.17 |
WHERE절 (숫자 데이터, 문자 검색하기) (0) | 2023.05.09 |
연결 연산자(||), 정렬 (ORDER BY), 중복 제거(DISTINCT) (1) | 2023.05.05 |