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