여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. SQL - 그룹

SQL – 그룹

2년전 작성

GROUP BY

GROUP BY 명령문은 동일한 값을 가진 행을 요약 행으로 그룹화한다(예: “각 국가의 고객 수 찾기”).

GROUP BY 명령문은 종종 집계 함수 (COUNT(), MAX() ,MIN(), SUM(), AVG())와 함께 사용되어 결과 집합을 하나 이상의 열로 그룹화한다.

구문

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);

데이터베이스 예시

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

각 국가의 고객 수를 나열

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
기본 예시

COUNT(CustomerID) Country
3 Argentina
2 Austria
2 Belgium
9 Brazil
3 Canada
2 Denmark
2 Finland
11 France
11 Germany
1 Ireland
3 Italy
5 Mexico
1 Norway
1 Poland
2 Portugal
5 Spain
2 Sweden
2 Switzerland
7 UK
13 USA
4 Venezuela

각 국가의 고객 수를 높음에서 낮음으로 정렬하여 나열

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
기본 예시

COUNT(CustomerID) Country
13 USA
11 Germany
11 France
9 Brazil
7 UK
5 Spain
5 Mexico
4 Venezuela
3 Italy
3 Canada
3 Argentina
2 Switzerland
2 Sweden
2 Portugal
2 Finland
2 Denmark
2 Belgium
2 Austria
1 Poland
1 Norway
1 Ireland

데이터베이스 예시

주문 테이블
OrderID CustomerID EmployeeID OrderDate ShipperID
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2
발송인 테이블
ShipperID ShipperName
1 Speedy Express
2 United Package
3 Federal Shipping

각 발송인이 보낸 주문 수를 나열

SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders
LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName;
기본 예시
ShipperName NumberOfOrders
Federal Shipping 68
Speedy Express 54
United Package 74


참고

Mingg`s Diary
밍구
밍구
공부 목적 블로그