그룹은 SELECT
문에서 GROUP BY
절을 사용하여 생성할 수 있다.
GROUP BY
절을 사용하여 데이터들을 원하는 그룹으로 나눌 수 있다.
그룹함수와 함께 사용되는 상수는 GROUP BY 절에 추가하지 않아도 된다.
SELECT vend_id, COUNT(*) AS num_prods
FROM Products
GROUP BY vend_id;
ORDER BY
vsGROUP BY
ORDER BY
: 결과 정렬. 가져오지 않은 열도 사용 가능. 필수 X.
GROUP BY
: 행 그룹핑. 선택된 열이나 수식만 사용 가능하고, 꼭 사용해야 함. 그룹 함수와 함께 사용하는 열 또는 수식이 있는 경우 필수.
GROUP BY
절을 사용할 때마다ORDER BY
절을 명시하자!
HAVING
절을 사용하여 그룹핑한 결과를 기반으로 필터링할 수 있다.
WHERE
vsHAVING
WHERE
절에서 사용할 수 있는 것들은HAVING
에서 그대로 적용할 수 있다.
WHERE
: 행을 필터링. 데이터가 그룹핑되기 전에 필터링한다.
HAVING
: 그룹을 필터링. 데이터가 그룹핑된 후에 필터링한다.
SELECT cust_id, COUNT(*) AS orders
FROM Orders
GROUP BY cust_id
HAVING COUNT(*) >= 2; -- 2개 이상 주문한 그룹만
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY