7. 汇总数据

汇总数据

聚集函数(aggregate function)

对某些行运行的函数,计算并返回一个值。

函数 说明
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列最大值
MIN() 返回某列最小值
SUM() 返回某列之和
  • 利用标准的算术操作符,所有聚集函数都可以用来执行多个列上的计算
SELECT SUM(column_name_1 * column_name_2) AS column_sum
FROM table_name;
WHERE column_name = 'str'

AVG()函数

SELECT AVG(column_name) AS column_name_avg
FROM table_name
WHERE column_name = 'str';

  • AVG()通过对表中行数技数并计算其列值之和,求得该列的平均值
  • AVG()函数只能用来确定特定列的平均值,且列名称必须作为函数参数给出,若需活动多个列的平均值,需使用多个AVG()函数
  • AVG()函数忽略列值为NULL的行

COUNT()函数

-- 对所有行进行计数
SELECT COUNT(*) AS column_num
FROM table_name;

-- 对特定列中有值的行进行计数
SELECT COUNT(column_name) AS column_num
FROM table_name;
  • COUNT()函数进行计数
  • 若指定列名,COUNT(column_name)函数忽略指定列值为NULL的行;若对所有行,COUNT(*)函数不忽略NULL值

MAX()函数

SELECT MAX(column_name) AS column_max
FROM table_name;
  • MAX()函数返回指定列的最大值
  • MAX()函数忽略列值为NULL的行
  • 用于文本数据时,MAX()函数返回按该列排序后的最后一行

MIN()函数

SELECT MIN(column_name) AS column_min
FROM table_name;
  • MIN()函数返回指定列的最小值
  • MIN()函数忽略列值为NULL的行
  • 用于文本数据时,MIN()函数返回按该列排序后的最前一行

SUM()函数

SELECT SUM(column_name) AS column_sum
FROM table_name;
WHERE column_name = 'str'
  • SUM()函数返回指定列值的总和
  • SUM()函数也可用于合计计算值
  • SUM()函数忽略列值为NULL的行

聚集不同值

SELECT AVG(DISTINCT column_name) AS column_name_avg
FROM table_name
WHERE column_name = 'str';
  • 5个聚集函数都可以对所有行执行计算,指定ALL 参数或不指定参数(ALL 为默认);也都可以通过指定DISTINCT 参数返回只包含不同的值
  • DISTINCT 必须使用列名,不能用于计算或表达式
  • DISTINCT 不能用于COUNT(*)
  • 将DISTINCT 用于MAX()和MIN()实际上无价值

组合聚集函数

SELECT COUNT(*) AS column_num,
       AVG(DISTINCT column_name) AS column_name_avg,
       MAX(column_name) AS column_max,
       MIN(column_name) AS column_min
FROM table_name
  • SELECT 语句可根据需要包含多个聚集函数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容