ABOUT ME

Today
Yesterday
Total
  • GROUP BY, HAVING
    데이터베이스 with MSSQL/SQL 입문 2022. 4. 6. 18:42

    1. 개념

    그룹으로 묶어서 무언가를 분석하고 싶을 때 쓰는 것이 GROUP BY 이다.

    GROUP BY는 SELECT 집계함수를 같이 사용해서 출력하거나 그룹으로 묶은 컬럼만 출력할 수 있다.

    HAVING은 GROUP BY에 조건을 달 때 사용한다.

    '논리적인' 순서는 FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY이다.

     

    2. 분석

    -- batting테이블에서 2004년에 200홈런 이상을 날린 팀의 목록을 내림차순으로 정렬
    SELECT teamID, SUM(HR) AS 홈런수
    FROM batting
    WHERE yearID = 2004
    GROUP BY teamID
    HAVING SUM(HR) >= 200
    ORDER BY 홈런수 DESC;
    
    -- GROUPO BY에서 인자가 N개이면 그룹은 N * N인 N ^ 2개로 구분된다.
    -- 예를들어, '단일 년도에서 가장 많은 홈런을 날린 팀'을 구할 때는
    SELECT teamID, yearID, SUM(HR) AS 홈런수
    FROM batting
    GROUP BY teamID, yearID
    ORDER BY 홈런수 DESC;

     

    '데이터베이스 with MSSQL > SQL 입문' 카테고리의 다른 글

    SUBQUERY, IN, EXISTS  (0) 2022.04.06
    INSERT, DELETE, UPDATE  (0) 2022.04.06
    집계함수  (0) 2022.04.06
    CASE  (0) 2022.04.06
    DATETIME  (0) 2022.04.06
Designed by Tistory.