表聚合(Table Aggregation)是指在数据库查询中使用聚合函数对表中的数据进行汇总计算。聚合函数用于对一组值进行计算,并返回一个单一的值。这些函数通常用于统计、分析和报告数据。
常见的聚合函数包括:
COUNT
:计算行数。SUM
:计算总和。AVG
:计算平均值。MIN
:计算最小值。MAX
:计算最大值。
示例代码
以下是一些使用SQL进行表聚合的示例,假设我们有一个名为employees
的表,结构如下:
CREATE TABLE employees (
emp_id NUMBER PRIMARY KEY,
emp_name VARCHAR2(100),
department VARCHAR2(50),
salary NUMBER
);
INSERT INTO employees (emp_id, emp_name, department, salary) VALUES (1, 'Alice', 'HR', 5000);
INSERT INTO employees (emp_id, emp_name, department, salary) VALUES (2, 'Bob', 'IT', 6000);
INSERT INTO employees (emp_id, emp_name, department, salary) VALUES (3, 'Charlie', 'IT', 7000);
INSERT INTO employees (emp_id, emp_name, department, salary) VALUES (4, 'David', 'Finance', 8000);
INSERT INTO employees (emp_id, emp_name, department, salary) VALUES (5, 'Eva', 'HR', 5500);
COMMIT;
1. 计算每个部门的员工数量
使用COUNT
函数计算每个部门的员工数量。
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department;
输出示例:
DEPARTMENT | EMPLOYEE_COUNT
------------|----------------
HR | 2
IT | 2
Finance | 1
2. 计算每个部门的总工资
使用SUM
函数计算每个部门的总工资。
SELECT department, SUM(salary) AS total_salary
FROM employees
GROUP BY department;
输出示例:
DEPARTMENT | TOTAL_SALARY
------------|--------------
HR | 10500
IT | 13000
Finance | 8000
3. 计算每个部门的平均工资
使用AVG
函数计算每个部门的平均工资。
SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department;
输出示例:
DEPARTMENT | AVERAGE_SALARY
------------|----------------
HR | 5250
IT | 6500
Finance | 8000
4. 查找每个部门的最高工资
使用MAX
函数查找每个部门的最高工资。
SELECT department, MAX(salary) AS max_salary
FROM employees
GROUP BY department;
输出示例:
DEPARTMENT | MAX_SALARY
------------|------------
HR | 5500
IT | 7000
Finance | 8000
5. 查找每个部门的最低工资
使用MIN
函数查找每个部门的最低工资。
SELECT department, MIN(salary) AS min_salary
FROM employees
GROUP BY department;
输出示例:
DEPARTMENT | MIN_SALARY
------------|------------
HR | 5000
IT | 6000
Finance | 8000
总结
表聚合(Table Aggregation)是通过聚合函数对表中的数据进行汇总计算的过程。常见的聚合函数包括COUNT
、SUM
、AVG
、MIN
和MAX
。这些函数用于对一组值进行计算,并返回一个单一的值,常用于统计、分析和报告数据。通过使用GROUP BY
子句,可以对数据进行分组,并对每组数据进行聚合计算。