> 데이터 베이스 > MySQL 튜토리얼 > MySQL에서 집계 함수를 어떻게 사용합니까 (예 : count, sum, avg, min, max)?

MySQL에서 집계 함수를 어떻게 사용합니까 (예 : count, sum, avg, min, max)?

Emily Anne Brown
풀어 주다: 2025-03-19 13:24:28
원래의
879명이 탐색했습니다.

MySQL (예 : Count, Sum, Avg, Min, Max)에서 집계 함수를 어떻게 사용합니까?

MySQL의 집계 함수는 일련의 값에 대한 계산을 수행하고 단일 값을 반환하는 데 사용됩니다. 가장 일반적인 집계 기능을 사용하는 방법은 다음과 같습니다.

  1. count () :이 함수는 지정된 조건과 일치하는 행 수를 반환합니다. 표현식이 무효가 아닌 모든 행이나 행만 계산할 수 있습니다.

     <code class="sql">SELECT COUNT(*) FROM employees; SELECT COUNT(employee_id) FROM employees WHERE department = 'IT';</code>
    로그인 후 복사
  2. Sum () :이 함수는 숫자 열의 총 합을 계산합니다. 널 값을 무시합니다.

     <code class="sql">SELECT SUM(salary) FROM employees WHERE department = 'Sales';</code>
    로그인 후 복사
  3. avg () :이 함수는 숫자 열의 평균을 계산합니다. 또한 널 값을 무시합니다.

     <code class="sql">SELECT AVG(salary) FROM employees WHERE department = 'Marketing';</code>
    로그인 후 복사
  4. 최소 () :이 함수는 지정된 열에서 가장 작은 값을 반환합니다.

     <code class="sql">SELECT MIN(salary) FROM employees;</code>
    로그인 후 복사
  5. MAX () :이 함수는 지정된 열에서 가장 큰 값을 반환합니다.

     <code class="sql">SELECT MAX(salary) FROM employees;</code>
    로그인 후 복사

MySQL에서 집계 함수로 절별로 그룹을 사용하는 방법을 설명 할 수 있습니까?

GROUP BY 절은 집계 함수와 함께 사용하여 지정된 열에서 동일한 값을 요약 행에있는 그룹 행에 사용합니다. 사용 방법은 다음과 같습니다.

 <code class="sql">SELECT department, COUNT(*) as employee_count, AVG(salary) as avg_salary FROM employees GROUP BY department;</code>
로그인 후 복사

이 예에서는 employees 테이블의 행은 department 열별로 그룹화됩니다. COUNT(*) 함수는 각 부서의 직원 수를 계산하고 AVG(salary) 각 부서의 평균 급여를 계산합니다.

기억해야 할 핵심 사항 :

  • GROUP BY 에 응집되지 않은 모든 열을 포함해야합니다.
  • GROUP BY 그룹은 일반적으로 그룹화 된 데이터에 집계 함수를 적용하려는 경우 사용됩니다.

MySQL에서 집계 기능을 사용할 때 피해야 할 몇 가지 일반적인 실수는 무엇입니까?

MySQL에서 집계 기능으로 작업 할 때는 다음과 같은 일반적인 실수를 피하는 것이 중요합니다.

  1. 그룹 사용을 잊어 버리기 : 집계 함수와 함께 Select 문에 응집되지 않은 열을 포함하는 경우 해당 열에 GROUP BY 사용해야합니다. 그렇게하지 않으면 오류가 발생합니다.

     <code class="sql">-- Incorrect SELECT department, COUNT(*) FROM employees; -- Correct SELECT department, COUNT(*) FROM employees GROUP BY department;</code>
    로그인 후 복사
  2. 그룹없이 집계 및 비 응집 열을 혼합 : 선택 문에서 집계 및 비 응집 열을 혼합 할 때, 오류 또는 예상치 못한 결과를 피하기 위해 GROUP BY 사용해야합니다.
  3. NULL 값 무시 : SUMAVG 기능은 NULL 값을 무시합니다. NULL 값이 중요하면 별도로 처리해야 할 수도 있습니다.
  4. 숫자가 아닌 데이터에서 집계 함수 사용 : SUMAVG 와 같은 함수는 숫자 데이터를위한 것입니다. 숫자가 아닌 데이터 유형 (예 : 문자열)에서이를 사용하면 오류 또는 예상치 못한 결과가 발생합니다.
  5. 오해 카운트 (col_name) : COUNT(col_name) 지정된 열에서 널 값이 아닌 값을 카운트합니다. 반면 COUNT(*) 다른 열의 널 값을 가진 모든 행을 포함하여 모든 행을 계산합니다.

더 나은 성능을 위해 MySQL에서 집계 함수를 사용하는 쿼리를 최적화하려면 어떻게해야합니까?

집계 기능으로 쿼리를 최적화하면 성능이 크게 향상 될 수 있습니다. 몇 가지 전략은 다음과 같습니다.

  1. 인덱스 사용 : WHERE , GROUP BYORDER BY 에 관련된 열이 인덱스되어 있는지 확인하십시오. 이것은 집계 과정의 속도를 높일 수 있습니다.

     <code class="sql">CREATE INDEX idx_department ON employees(department);</code>
    로그인 후 복사
  2. Select * : SELECT * 사용하는 대신 필요한 열만 지정하십시오. 이는 처리해야 할 데이터의 양을 줄입니다.

     <code class="sql">-- Instead of SELECT * FROM employees GROUP BY department; -- Use SELECT department, COUNT(*) FROM employees GROUP BY department;</code>
    로그인 후 복사
  3. 그룹 이전에 사용하십시오 : WHERE GROUP BY 적용하기 전에 가능한 많은 행을 필터링하십시오. 이렇게하면 그룹화 해야하는 행의 수가 줄어 듭니다.

     <code class="sql">SELECT department, COUNT(*) FROM employees WHERE salary > 50000 GROUP BY department;</code>
    로그인 후 복사
  4. 하위 쿼리 또는 파생 테이블 사용을 고려하십시오 . 경우에 따라 최종 집계를 적용하기 전에 데이터를 사전 응집하기 위해 서브 쿼리를 사용하면 성능이 향상 될 수 있습니다.

     <code class="sql">SELECT d.department, SUM(e.total_salary) as total_department_salary FROM ( SELECT department, SUM(salary) as total_salary FROM employees GROUP BY employee_id, department ) e JOIN departments d ON e.department = d.department GROUP BY d.department;</code>
    로그인 후 복사
  5. 설명 설명 : EXPLAIN 설명을 사용하여 쿼리의 실행 계획을 분석하십시오. 이를 통해 잠재적 인 병목 현상을 식별하고 그에 따라 최적화 할 수 있습니다.

     <code class="sql">EXPLAIN SELECT department, COUNT(*) FROM employees GROUP BY department;</code>
    로그인 후 복사

이러한 최적화 기술을 적용하면 MySQL에서 집계 기능을 사용하는 쿼리의 성능을 크게 향상시킬 수 있습니다.

위 내용은 MySQL에서 집계 함수를 어떻게 사용합니까 (예 : count, sum, avg, min, max)?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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