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() | 모든 그룹 값을 하나의 문자열로 연결합니다. |
이제 집계 함수가 있는 몇 가지 예를 살펴보겠습니다.
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
. , MAX
및 AVG
.
이번에는 쿼리가 좀 더 복잡해지며 다음과 같이 표시됩니다.
SELECT MIN(salary), AVG(salary), MAX(salary)
FROM employee
이 쿼리의 결과는 다음과 같습니다.
민(급여) | AVG(급여) | MAX(급여) |
---|---|---|
1000 | 76833.3333 | 200000 |
우리 부서의 최저 임금은 $1,000입니다. 매우 좋습니다. 최대 급여는 200,000이지만 감독입니다.
하지만 평균 급여가 너무 높기 때문에 어떻게든 비용을 최적화해야 합니다. 다른 고양이를 고용합시다.