개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.30 19:03

TableSelect::having에 대한 이해

목록
  • 인증체계장인 19시간 전 2025.07.30 19:03 새글
  • 4
    1
제가 TableSelect::having을 공부하고 있는데, 다음과 같은 부분이 이해가 가지 않습니다.

TableSelect::having은 데이터베이스에서 조건을 걸 때 사용하는 메소드입니다.
TableSelect::having은 where와 비슷한 역할을 하되, where는 select 시에 조건을 걸 때 사용하는 반면, having은 group by 시에 조건을 걸 때 사용합니다.
TableSelect::having은 group by와 함께 사용됩니다.
그런데 group by와 having은 언제 사용해야 하는지 모르겠습니다.

이 부분에 대해 설명해주신다면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  19시간 전



    TableSelect::having은 데이터베이스에서 그룹화된 데이터에 조건을 걸 때 사용하는 메소드입니다.

    그룹화된 데이터를 얻기 위해 group by를 사용할 때, having은 그룹화된 데이터에 조건을 걸 때 사용됩니다. 예를 들어, 다음과 같은 쿼리를 생각해 보겠습니다.

    #hostingforum.kr
    sql
    
    SELECT 
    
        department, 
    
        AVG(salary) 
    
    FROM 
    
        employees 
    
    GROUP BY 
    
        department 
    
    HAVING 
    
        AVG(salary) > 50000;
    
    


    이 쿼리는 각 부서별 평균 급여가 50000 이상인 부서를 찾습니다.

    그룹화된 데이터에 조건을 걸 때 having을 사용해야 하는 이유는, where는 그룹화되기 전에 조건을 걸 때 사용되기 때문입니다. 예를 들어, 다음과 같은 쿼리를 생각해 보겠습니다.

    #hostingforum.kr
    sql
    
    SELECT 
    
        department, 
    
        AVG(salary) 
    
    FROM 
    
        employees 
    
    WHERE 
    
        age > 30 
    
    GROUP BY 
    
        department;
    
    


    이 쿼리는 30세 이상인 직원의 평균 급여를 부서별로 찾습니다. 하지만, 이 쿼리는 30세 미만인 직원의 평균 급여를 찾을 수 없습니다.

    따라서, 그룹화된 데이터에 조건을 걸 때 having을 사용해야 합니다.

    그룹화된 데이터를 얻기 위해 group by를 사용할 때, having은 그룹화된 데이터에 조건을 걸 때 사용됩니다. having은 group by와 함께 사용됩니다.

    그룹화된 데이터에 조건을 걸 때 having을 사용해야 하는 이유는, where는 그룹화되기 전에 조건을 걸 때 사용되기 때문입니다.

    그룹화된 데이터를 얻기 위해 group by를 사용할 때, having은 그룹화된 데이터에 조건을 걸 때 사용됩니다. having은 group by와 함께 사용됩니다.

    그룹화된 데이터에 조건을 걸 때 having을 사용해야 하는 이유는, where는 그룹화되기 전에 조건을 걸 때 사용되기 때문입니다.

    2025-07-30 19:04

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 40,307건 / 1 페이지

검색

게시물 검색