합계가 임계값보다 큰 경우 MySQL HAVING 절을 사용하는 방법

Habgyega Imgyegabsboda Keun Gyeong U Mysql Having Jeol Eul Sayonghaneun Bangbeob



MySQL 데이터베이스로 작업할 때 종종 값을 필터링하려는 경우가 있습니다. WHERE 절을 사용할 수 있지만 모든 경우에 항상 작동하는 것은 아닙니다. HAVING 절은 집계 함수를 사용하여 필터 쿼리를 실행하고 그룹화를 적용하려는 경우에 사용됩니다.

HAVING 절은 필터의 GROUP BY 절에 의존하며 제공된 조건에 따라 쿼리를 실행합니다. 조건에 따라 필터를 제한하고 조건을 충족하는 경우 선택한 그룹만 반환합니다. 합계가 임계값을 초과하는 MySQL HAVING 절을 사용하는 예가 있습니다. 그렇게 하면 오늘 게시물이 끝날 때 사용 방법을 마스터하게 됩니다.







합계가 임계값보다 큰 경우 MySQL HAVING 절을 사용하는 방법

GROUP BY 절과 함께 MySQL HAVING 절을 적용합니다. 구문은 다음과 같습니다.



SELECT expression1, .. expression_n, aggregate_func(식) FROM table_name GROUP BY 식 HAVING <조건>;

SUM(), COUNT(), MIN(), MAX() 및 AVG()를 비롯한 다양한 집계 함수를 사용할 수 있습니다. 집계 함수와 함께 사용되지 않는 표현식은 GROUP BY 절과 함께 언급되어야 합니다.



조건의 경우 조건으로 확인하려는 임계값을 지정한 집계 결과에 적용됩니다. 예를 들어, SUM() 함수를 적용하고 표현식이 임계값 10을 충족하는지 확인할 수 있습니다. 제공된 예제에서 이에 대해 자세히 이해할 것입니다.





HAVING 절이 작동하는 방식을 이해하기 위해 작업할 샘플 데이터베이스를 생성해 보겠습니다. 데이터베이스 이름을 '등록'으로 지정합니다.



또한 다양한 열과 데이터 유형을 포함하기 위해 'workers'라는 테이블을 생성해 보겠습니다. 여기에서 이름, 시간, 근무 날짜 등과 같은 작업자 데이터로 작업합니다.

테이블의 설명을 확인하면 모든 열이 성공적으로 생성되었음을 확인할 수 있습니다.

테이블에 값을 삽입합니다. 우리는 다른 시간과 요일에 일하는 다른 근로자들이 있습니다. 이 데이터를 사용하여 합계가 임계값을 초과하는 HAVING 절을 적용할 수 있습니다.

첫 번째 예에서는 가장 많은 시간을 일한 근로자를 찾고자 하는 경우를 생각해 보겠습니다. HAVING 절의 경우 시간에 대한 합계 집계 함수를 포함합니다. GROUP BY 절에서 총 시간이 임계값보다 큰 작업자를 분류하는 데 도움이 되도록 이름 행을 사용하여 행을 그룹화합니다.

총 시간에 대한 임계값이 7이면 다음과 같이 명령을 실행합니다.

SELECT name, SUM(hours) AS total_hours_per_person FROM workers GROUP BY name HAVING sum(hours) > 7;

명령을 실행하면 HAVING 절에 지정된 임계값을 초과한 작업자가 두 명뿐이므로 두 행이 포함된 출력이 표시됩니다.

7시간이라는 임계값보다 더 많은 시간 동안 근무하는 직원이 있는 부서를 보기 위해 부서를 분류한다고 가정합니다. 부서를 선택한 다음 시간과 함께 SUM 집계 함수를 사용하고 부서 식을 사용하여 행을 그룹화합니다.

우리의 명령은 다음과 같습니다.

SELECT 부서, SUM(시간) AS total_hours_per_department FROM worker GROUP BY 부서 HAVING 합계(시간) > 7;

결과에서 우리는 시간 합계가 임계값보다 큰 행만 남기도록 행을 필터링했음을 확인할 수 있습니다.

마찬가지로 근무 근로자 수가 가장 많은 근무일을 10시간 임계값을 초과하도록 필터링하려면 근무일 표현식을 선택합니다. 그런 다음 시간과 함께 SUM 함수를 사용하고 작업 날짜를 사용하여 행을 그룹화합니다.

명령은 다음과 같습니다.

근무일 선택, SUM(시간) AS 최고_시간_일 FROM 근로자 GROUP BY 근무일 HAVING 합계(시간) > 10;

명령을 실행한 후 결과에는 하나의 작업 날짜에만 총 시간 합계가 임계값을 초과하는 것으로 표시됩니다.

결론

집계 함수를 사용하여 필터 쿼리를 실행하려는 경우 MySQL HAVING 절을 사용합니다. GROUP BY 절과 결합하여 보다 구체적인 쿼리를 실행합니다. 이 게시물에서는 합계가 임계값보다 큰 MySQL HAVING 절에 대해 자세히 설명했습니다. 제공된 예제를 통해 이제 MySQL HAVING 절을 사용하는 방법을 이해할 수 있습니다.