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 |
+-------+-------+