해당 테이블의 Column에서 겹치지 않게 데이터를 가져오기 ( Column에서 데이터 종류를 쉽게 파악할 수 있다 )
SELECT Country FROM Customers GROUP BY Country;
📌 Customers 테이블에서 Country 행에서 겹치지 않는 모든 데이터
-> Country 기준으로 같은 국가 끼리 묶은 데이터, 모든 국가들이 겹치지 않고 1개씩 나옴
SELECT CategoryID FROM Products
GROUP BY CategoryID;
📌 Products 테이블에서 CategoryID 행에서 겹치지 않는 모든 데이터
SELECT
Country, City,
CONCAT_WS(', ', City, Country)
FROM Customers
GROUP BY Country, City;
📌 Customers 테이블에서 Country와 City의 조합이 겹치지 않는 데이터
SELECT
COUNT(*), OrderDate
FROM Orders
GROUP BY OrderDate;
📌 Orders 테이블에서 각 OrderDate가 겹치는 것들이 몇개인지 COUNT된 데이터
-> 각 날짜에 몇개의 주문이 있었는지 알 수 있음
SELECT
ProductID,
SUM(Quantity) AS QuantitySum
FROM OrderDetails
GROUP BY ProductID
ORDER BY QuantitySum DESC;
📌 OrderDetails 테이블에서 ProductID의 값이 같은 것들을 그룹핑하고 그 합을 내림차순으로 출력
-> 각 ProductId 총 갯수를 알수 있음
SELECT
CategoryID,
MAX(Price) AS MaxPrice,
MIN(Price) AS MinPrice,
TRUNCATE((MAX(Price) + MIN(Price)) / 2, 2) AS MedianPrice,
TRUNCATE(AVG(Price), 2) AS AveragePrice
FROM Products
GROUP BY CategoryID;
📌 Products 테이블에서 CategoryID를 그룹핑하고 각 ID에 대해 MAX, MIN, 중간값, 평균값 데이터를 출력
SELECT
CONCAT_WS(', ', City, Country) AS Location,
COUNT(CustomerID)
FROM Customers
GROUP BY Country, City;
📌 Customers 테이블에서 Country, City가 겹치지 않는 값으로 그룹핑해 Location이라는 별칭으로 그 숫자를 카운트한 데이터
SELECT
Country, COUNT(*)
FROM Suppliers
GROUP BY Country
WITH ROLLUP;
📌 Suppliers 테이블에서 Country를 그룹핑해 겹치는 값을 COUNT하고 그 총합 데이터도 출력
SELECT DISTINCT CategoryID
FROM Products;
-- 위의 GROUP BY를 사용한 쿼리와 결과 비교
📌 Products테이블에서 categoryID가 데이터가 겹치지 않는 숫자 출력(정렬 되지 않은 채로)
SELECT DISTINCT Country
FROM Customers
ORDER BY Country;
📌 Customers테이블에서 Country가 겹치지 않도록 오름차순 출력
SELECT DISTINCT Country, City
FROM Customers
ORDER BY Country, City;
📌 Country, City가 겹치지 않도록 오름차순 출력
SELECT
Country,
COUNT(DISTINCT CITY)
FROM Customers
GROUP BY Country;
📌 Customers 테이블에서 Country를 그룹핑하고 그곳에서 CITY가 겹치지 않는 데이터를 카운트해서 출력