> 데이터 베이스 > MySQL 튜토리얼 > Hown 절을 사용하여 그룹화 된 데이터를 어떻게 필터링합니까?

Hown 절을 사용하여 그룹화 된 데이터를 어떻게 필터링합니까?

James Robert Taylor
풀어 주다: 2025-03-19 13:26:31
원래의
282명이 탐색했습니다.

Hown 절을 사용하여 그룹화 된 데이터를 어떻게 필터링합니까?

SQL의 hown 절은 그룹별로 그룹의 집계 된 결과에 적용되는 조건에 따라 그룹화 된 데이터를 필터링하는 데 사용됩니다. Count, Sum, Avg, Max 또는 Min과 같은 집계 기능에 조건을 적용하려는 경우 특히 유용합니다.

다음은 hading 절을 사용하여 그룹화 된 데이터를 필터링하는 방법입니다.

  1. 먼저, 그룹 별 절을 사용하여 지정된 열 또는 열에 따라 데이터를 그룹화하십시오.
  2. 그런 다음 HAD

예를 들어, 칼럼 salespersonamount 이있는 sales 라는 테이블이 있고 총 매출이 $ 10,000보다 큰 영업 사원을 찾으려면 다음 SQL 쿼리를 사용합니다.

 <code class="sql">SELECT salesperson, SUM(amount) AS total_sales FROM sales GROUP BY salesperson HAVING SUM(amount) > 10000;</code>
로그인 후 복사

이 쿼리에서 :

  • 조항 GROUP BY salesperson 의 판매를 그룹화합니다.
  • HAVING Clause는 그룹화 된 결과를 필터링하여 amount 의 합계가 $ 10,000보다 큰 그룹 (영업 사원) 만 포함합니다.

SQL에서 클로스를 어디에두고 있는지 사이의 주요 차이점은 무엇입니까?

클로스와 함께하는 곳은 모두 SQL로 데이터를 필터링하는 데 사용되지만 다른 목적으로 사용되며 쿼리 처리의 다른 단계에서 적용됩니다. 그들 사이의 주요 차이점은 다음과 같습니다.

  1. 응용 단계 :

    • 여기서 절은 그룹화되기 전에 행을 필터링하는 데 사용됩니다. 개별 행에 적용되며 절에 의해 그룹별로 유무에 관계없이 사용될 수 있습니다.
    • 조항을 사용하는 것은 그룹에 의해 그룹에 의해 생성 된 후 그룹을 필터링하는 데 사용됩니다. 쿼리가 전체 테이블을 단일 그룹으로 효과적으로 취급하지 않는 한 절을 통해 그룹없이 사용할 수 없습니다.
  2. 집계 기능이있는 사용 :

    • 조항을 집계 함수와 함께 사용할 수없는 경우 . 예를 들어, where 절은 집계 된 결과가 보이지 않기 때문에 WHERE SUM(amount) > 10000 쓸 수 없습니다.
    • volause 는 집계 기능과 함께 작동하도록 설계되었습니다. 예를 들어, HAVING SUM(amount) > 10000 것은 hading 조항의 유효한 사용입니다.
  3. 실행 순서 :

    • 그룹 이전 에 처리되는 곳은 필터링이 그룹화 전에 발생합니다.
    • 그룹 후에 처리 된 후, 이는 그룹화 후 필터링이 발생한다는 것을 의미합니다.
  4. 구문 및 배치 :

    • 쿼리에서 그룹 앞에 오는 .
    • 쿼리에서 그룹 후에 옵니다 .

다음은 이러한 차이점을 설명하기위한 예입니다.

 <code class="sql">SELECT department, AVG(salary) AS average_salary FROM employees WHERE hire_date > '2020-01-01' -- Filters rows before grouping GROUP BY department HAVING AVG(salary) > 50000; -- Filters groups after grouping</code>
로그인 후 복사

haved clause는 그룹없이 사용할 수 있습니까? 그렇다면 언제든지?

HAD 그러나 기술적으로는 그룹 별 조항없이 HAD

  • 절이 절을하지 않고 HAD 이는 Hown 절에 사용 된 모든 집계 기능이 전체 테이블 또는 결과 세트에 적용됨을 의미합니다.

다음은 hading 절이 절을 통해 그룹별로 사용되는 예입니다.

 <code class="sql">SELECT COUNT(*) AS total_customers FROM customers HAVING COUNT(*) > 1000;</code>
로그인 후 복사

이 쿼리에서, adge clause는 해당 카운트가 1000보다 큰 경우에만 고객의 총 카운트 만 반환하기 위해 결과를 필터링합니다. Clause에 의해 그룹이 없으므로 전체 customers 테이블은 하나의 그룹으로 취급됩니다.

그룹이없는 채로 사용하는 것은 가능하지만 전체 결과 세트를 단일 그룹으로 명시 적으로 작업하지 않는 한 일반적으로 권장되지 않습니다. 혼란을 초래할 수 있으며 가능한 경우 WHERE 절을 사용하는 것보다 효율적입니다.

while 절에서 여러 조건을 효과적으로 결합 할 수 있습니까?

Hown 절에서 여러 조건을 결합하려면 AND OR NOT 같은 논리 연산자를 사용할 수 있습니다. 이 연산자를 사용하면 복잡한 조건을 생성하여 그룹화 된 데이터를보다 정확하게 필터링 할 수 있습니다. 다음은 다음과 같은 조항의 여러 조건을 효과적으로 결합하는 몇 가지 방법입니다.

  1. 사용 및 운영자 :
    AND 연산자는 그룹이 결과 세트에 포함 되려면 모든 조건이 사실이어야하는 조건을 결합하는 데 사용됩니다.

     <code class="sql">SELECT category, COUNT(*) AS product_count, AVG(price) AS average_price FROM products GROUP BY category HAVING COUNT(*) > 10 AND AVG(price) > 50;</code>
    로그인 후 복사

    이 쿼리는 10 개 이상의 제품과 평균 가격이 $ 50보다 큰 범주를 필터링합니다.

  2. 사용 또는 운영자 :
    OR 연산자는 그룹이 결과 세트에 포함 되려면 조건 중 하나 이상이 사실이어야하는 조건을 결합하는 데 사용됩니다.

     <code class="sql">SELECT department, AVG(salary) AS average_salary FROM employees GROUP BY department HAVING AVG(salary) > 70000 OR COUNT(*) > 50;</code>
    로그인 후 복사

    이 쿼리는 평균 급여가 $ 70,000보다 크거나 직원이 50 명 이상인 부서를 필터링합니다.

  3. 작동하지 않음 사용 :
    NOT 연산자는 조건을 부정하는 데 사용됩니다.

     <code class="sql">SELECT category, SUM(quantity) AS total_quantity FROM inventory GROUP BY category HAVING NOT (SUM(quantity) </code>
    로그인 후 복사

    이 쿼리는 총 수량이 1000 이상인 범주를 필터링합니다.

  4. 결합 및 및 또는 :
    OR AND 결합하여보다 복잡한 조건을 만들 수 있습니다. 명확성과 정확한 평가 순서를 보장하려면 괄호를 사용하여 그룹 조건을 사용하십시오.

     <code class="sql">SELECT region, COUNT(*) AS customer_count, AVG(total_purchases) AS average_purchase FROM customers GROUP BY region HAVING (COUNT(*) > 100 AND AVG(total_purchases) > 1000) OR (COUNT(*) > 500);</code>
    로그인 후 복사

    이 쿼리는 100 명 이상의 고객이 있고 평균 구매가 $ 1000 이상인 지역 또는 500 명 이상의 고객이있는 지역을 필터링합니다.

이러한 논리 연산자를 효과적으로 사용하면 Hown Clause를 사용하여 그룹화 된 데이터에 대해 상세하고 정확한 필터를 만들 수 있습니다.

위 내용은 Hown 절을 사용하여 그룹화 된 데이터를 어떻게 필터링합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿