MySQL 정리


 





1. GROUP BY 

  • 조건에 따라 집계된 값을 가져온다.( 겹치지 않고 나온다.!)

  • 여러 컬럼을 기준으로 그룹화 할 수 있다.

  • 주로 집계함수 와 같이 사용함

  • ORDER BY 도 같이 사용함.

    ex) SELECT CategoryID FROM Products

    GROUP BY CategoryID;

2. WITH ROLLUP 

  • total 과 비슷한 의미

  • 전체의 집계값(마지막에 나타남)

  • 각 집계함수 쿼리 끝에 WITH ROLLUP 을 사용할 수 있다.

  • ORDER BY 와 함께 사용할 수 없다.

    ex) SELECT Country, COUNT(*) 

    FROM Suppliers

    GROUP BY Country WITH ROLLUP;

3. HAVING 

  • 그룹화된 데이터 걸러내기

  • WHERE 은 그룹화 하기 전 데이터 집계에 사용

  • HAVING 은 그룹 후 집계에 사용

    ex) SELECT Country, COUNT(*) AS Count

    FROM Suppliers GROUP BY Country HAVING Count >= 3;

4. DISTINCT

  • 중복된 값을 제거.

  • GROUP BY 와 달리 집계함수와 사용 되지 않음

  • GROUP BY 와 달리 정렬하지 않으므로 더 빠르다.

    ex) SELECT DISTINCT Country, City

    FROM Customers ORDER BY Country, City;
  • ex) SELECT Country, COUNT(DISTINCT CITY) FROM Customers GROUP BY Country;

댓글