Oracle多行函数(也称为聚合函数或组函数)作用于一组数据,并对该组数据返回一个单一的值。这些函数在处理分组数据或对整个表进行汇总操作时非常有用。以下是一些常见的Oracle多行函数及其描述:
1. AVG
- 功能:计算某列的平均值。
- 示例:
SELECT AVG(salary) FROM employees;
- 描述:计算employees表中salary列的平均值。
2. COUNT
- 功能:计算某列的行数(或非空值的数量)。
- 示例:
SELECT COUNT(*) FROM employees;
计算employees表中的所有行数。SELECT COUNT(commission_pct) FROM employees;
计算employees表中commission_pct列非空值的数量。
- 描述:用于统计行数,可以统计所有行,也可以统计特定列中非空值的数量。
3. MAX
- 功能:返回某列的最大值。
- 示例:
SELECT MAX(salary) FROM employees;
- 描述:返回employees表中salary列的最大值。
4. MIN
- 功能:返回某列的最小值。
- 示例:
SELECT MIN(salary) FROM employees;
- 描述:返回employees表中salary列的最小值。
5. SUM
- 功能:计算某列所有值的总和。
- 示例:
SELECT SUM(salary) FROM employees;
- 描述:计算employees表中salary列所有值的总和。
6. 其他要点
- 与GROUP BY子句结合使用:多行函数经常与GROUP BY子句一起使用,以便对数据进行分组并计算每个组的聚合值。
- 空值处理:多行函数通常会忽略空值(NULL)。例如,COUNT(*)计算所有行,而COUNT(column_name)只计算column_name列中非空值的数量。
- 性能考虑:当处理大量数据时,使用多行函数可能会对性能产生影响。因此,在设计和查询时需要考虑优化策略。
示例(结合GROUP BY)
假设我们有一个名为sales
的表,其中包含year
、product_id
和sales_amount
三列。我们想要计算每年每种产品的销售额总和:
SELECT year, product_id, SUM(sales_amount) AS total_sales
FROM sales
GROUP BY year, product_id;
这个查询将返回一个结果集,其中包含每年每种产品的年份、产品ID和销售额总和。