6.1 집계 함수 목록

연산자와 함께 SQL에서 행 그룹화를 사용하면 그룹화된 데이터에서 작동하는 문에서 함수를 GROUP BY사용할 수 있습니다 . SELECT이러한 함수를 집계 함수라고도 합니다.

다음은 가장 인기 있는 목록입니다.

# 기능 설명
1 세다() 그룹의 값 수를 반환합니다.
2 합집합() 그룹의 값 합계를 반환합니다.
MAX() 그룹의 최대값을 반환합니다.
4 분() 그룹의 최소값을 반환합니다.
5 AVG() 그룹의 평균을 반환합니다.
6 BIT_AND() 모든 그룹 값에 대해 비트 AND를 수행합니다.
7 BIT_OR() 모든 그룹 값에 대해 비트 OR을 수행합니다.
8 비트_XOR() 모든 그룹 값에 대해 비트별 XOR을 수행합니다.
9 GROUP_CONCAT() 모든 그룹 값을 하나의 문자열로 연결합니다.
집계 함수의 전체 목록은 아니지만 나머지는 매우 구체적이며 향후 5년 동안 사용하지 않을 것이라고 생각합니다. 여전히 필요한 경우 DBMS에 대한 공식 문서를 항상 읽을 수 있습니다.

이제 집계 함수가 있는 몇 가지 예를 살펴보겠습니다.

6.2 직원 급여 분석

직원 테이블 에서 직원에 대한 통계를 계산해 보겠습니다 .

질문 1: 직원이 몇 명입니까?

테이블의 모든 레코드 수를 찾으려면 this 에 대한 집계 함수를 사용할 수 있습니다 COUNT. 요청은 다음과 같습니다.

SELECT COUNT(*) FROM employee

그리고 MySQL은 응답으로 숫자 6을 반환합니다. 부서에는 고양이를 포함하여 6명의 직원이 있습니다. 괜찮은.

질문 2: 모든 직원에게 한 달에 얼마를 지불합니까?

이 질문에 답하려면 모든 직원의 급여를 합산해야 합니다. 이를 위해 집계 함수를 사용합니다.SUM()

요청은 다음과 같습니다.

SELECT SUM(salary) FROM employee

이번에는 요약할 열의 값을 지정해야 합니다. 급여 열을 지정했습니다 . 테이블의 모든 필드를 합산할 수는 없습니다.

그리고 MySQL은 답으로 461000이라는 숫자를 반환할 것입니다. 부서에 6명의 직원이 있고 급여는 461,000입니다. 너무 많은.

마지막으로 세 번째 질문입니다. 부서의 최대 급여와 최소 급여는 얼마입니까? 자, 평균 급여를 계산해 봅시다. 이를 위해서는 함수가 필요합니다 MIN. , MAXAVG.

이번에는 쿼리가 좀 더 복잡해지며 다음과 같이 표시됩니다.

SELECT MIN(salary), AVG(salary), MAX(salary)
FROM employee

이 쿼리의 결과는 다음과 같습니다.

민(급여) AVG(급여) MAX(급여)
1000 76833.3333 200000

우리 부서의 최저 임금은 $1,000입니다. 매우 좋습니다. 최대 급여는 200,000이지만 감독입니다.

하지만 평균 급여가 너무 높기 때문에 어떻게든 비용을 최적화해야 합니다. 다른 고양이를 고용합시다.