提要:本教程中,你将学习到如何使用 PostgreSQL 的 AVG(), COUNT(), MIN(), MAX() 和 SUM() 等聚合函数。

聚合函数简介

聚合函数(aggregate functions)对一组记录进行计算并以一行来返回。PostgreSQL 提供了所有标准 SQL 定义的聚合函数:

  • AVG():返回平均值
  • COUNT():返回值的数量
  • MAX():返回最大的值
  • MIN():返回最小的值
  • SUM():返回值的和

我们经常在 SELECT 语句中将聚合函数与 GROUP BY 子句一起使用。在这些情况下,GROUP BY子句将结果集的行进行分组,集合函数对每个组执行计算。

只能在以下子句中将聚合函数用作表达式:

  • SELECT 子句
  • HAVING 子句

聚合函数示例

我们使用示例数据库中的 film 进行演示。

AVG() 函数

以下语句使用 AVG()函数来计算所有电影的平均重置成本:

SELECT
 ROUND( AVG( replacement_cost ), 2 ) avg_replacement_cost
FROM
 film;

提示:ROUND() 函数用于将结果四舍五入到小数点后两位。

COUNT() 函数

要计算影片的总数量,使用 COUNT(*) 函数:

SELECT 
    COUNT(*) 
FROM 
    film;

MAX() 函数

下面的语句返回所有影片中,最高的重置成本:

SELECT 
    MAX(replacement_cost)
FROM 
    film;

要获取最高重置成本的影片,可以使用子查询:

SELECT
 film_id,
 title
FROM
 film
WHERE
 replacement_cost =(
 SELECT
 MAX( replacement_cost )
 FROM
 film
 )
ORDER BY
 title;

MIN() 函数

下面的语句返回所有影片中,最低的重置成本:

SELECT 
    MIN(replacement_cost)
FROM 
    film;

SUM() 函数

以下语句使用 SUM() 函数计算按影片评分分组的影片总长度:

SELECT
 rating,
 SUM( rental_duration )
FROM
 film
GROUP BY
 rating
ORDER BY
 rating;
下一篇:日期时间函数