MariaDB / 함수 / COUNT, SUM, AVG, MAX, MIN
예제로 사용한 데이터베이스는 employees입니다.
COUNT
COUNT는 특정 조건을 만족하는 행의 개수를 세는 함수입니다.
employees 테이블의 전체 행 개수를 구합니다. 의미 상 전체 직원 수를 구하는 것입니다.
SELECT COUNT( * ) AS Count FROM employees ;
+----------+ | Count | +----------+ | 300024 | +----------+
WHERE를 이용하여 조건을 추가할 수 있습니다. 다음은 남자 직원의 수를 구하는 쿼리입니다.
SELECT COUNT( * ) AS Count FROM employees WHERE gender = "M" ;
+----------+ | Count | +----------+ | 179973 | +----------+
GROUP BY를 이용하면 값 별로 개수를 구할 수 있습니다. 다음은 WHERE를 사용하지 않고 남자 직원과 여자 직원의 수를 구하는 쿼리입니다.
SELECT gender, COUNT( gender ) AS Count FROM employees GROUP BY gender ;
+--------+--------+ | gender | Count | +--------+--------+ | M | 179973 | | F | 120051 | +--------+--------+
SUM
SUM은 특정 조건을 만족하는 행의 개수를 세는 함수입니다.
salaries 테이블에서 emp_no가 10001인 사원 급여의 총합을 구합니다.
SELECT SUM( salary ) AS Salary FROM salaries WHERE emp_no = 10001 ;
+-------------+ | Ssalary | +-------------+ | 1281612 | +-------------+
AVG
AVG는 특정 조건을 만족하는 행의 값들의 평균을 구하는 함수입니다.
전체 급여의 평균을 구합니다.
SELECT AVG( salary ) AS Average FROM salaries ;
+-------------+ | Average | +-------------+ | 63810.7448 | +-------------+
emp_no가 10001인 사원의 평균 급여를 구합니다.
SELECT AVG( salary ) AS Average FROM salaries WHERE emp_no = 10001 ;
+------------+ | Average | +------------+ | 75388.9412 | +------------+
ROUND 함수로 소수점 아래의 숫자를 없앱니다.
SELECT ROUND( AVG( salary ), 0 ) AS Average FROM salaries WHERE emp_no = 10001 ;
+---------+ | Average | +---------+ | 75389 | +---------+
MAX, MIN
MAX는 최댓값, MIN은 최솟값을 구하는 함수입니다.
급여의 최댓값과 최솟값을 구합니다.
SELECT MAX(salary) AS MAX, MIN(salary) AS MIN FROM salaries ;
+--------+-------+ | MAX | MIN | +--------+-------+ | 158220 | 38623 | +--------+-------+
emp_no가 10001, 10002, 10003인 사원의 최대 급여과 최소 급여를 구합니다.
SELECT MAX(salary) AS MAX, MIN(salary) AS MIN FROM salaries WHERE emp_no IN ( 10001, 10002, 10003 ) ;
+-------+-------+ | MAX | MIN | +-------+-------+ | 88958 | 40006 | +-------+-------+