SQL学习08 汇总数据

聚集函数

聚集函数(aggregate function)对某些行运行的函数,计算并返回一个值。

1 AVG()函数

SELECT AVG(prod_price) AS avg_price

FROM Products;

警告:只用于单个列

AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。

说明:NULL值

AVG()函数忽略列值为NULL的行。

2 COUNT()函数

COUNT()函数进行计数。可利用COUNT()确定表中行的数目或符合特定条件的行的数目。

- 使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。

- 使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。

说明:NULL值

如果指定列名,则COUNT()函数会忽略指定列的值为空的行,但如果COUNT()函数中用的是星号(*),则不忽略。

3 MAX()函数 MIN()

5 SUM()函数

SELECT SUM(item_price*quantity)AS total_price

FROM OrderItems

WHERE order_num=20005;

说明:NULL值

SUM()函数忽略列值为NULL的行。

聚集不同值

- 对所有行执行计算,指定ALL参数或不指定参数(因为ALL是默认行为)。

- 只包含不同的值,指定DISTINCT参数。

提示:ALL为默认

ALL参数不需要指定,因为它是默认行为。如果不指定DISTINCT,则假定为ALL。

在使用了DISTINCT后,此例子中的avg_price比较高,因为有多个物品具有相同的较低价格。排除它们提升了平均价格。

SELECT AVG(DISTINCT prod_price)AS avg_price

FROMProducts

WHERE vend_id='DLL01';

警告:DISTINCT不能用于COUNT(*)

如果指定列名,则DISTINCT只能用于COUNT()。DISTINCT不能用于COUNT(*)。类似地,DISTINCT必须使用列名,不能用于计算或表达式。

组合聚集函数

SELECT COUNT(*)AS num_items,

             MIN(prod_price)AS price_min,

             MAX(prod_price)AS price_max,

             AVG(prod_price)AS price_avg

FROMProducts;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 于是又到了梧桐絮飘满校园的四月,又到了梧桐色相簿的季节,我们迎来了实习生招聘。 “范老湿从不写代码”,“范老湿从不...
    Lance_Van阅读 4,073评论 0 1
  • 数据库入门 数据库: 保存有组织的数据的容器(通常是一个文件或一组文件).数据库软件应该称为 DBMS(DataB...
    Mjericho阅读 3,462评论 0 0
  • 1.表中的任何列都可以作为主键, 只要它满足以下条件:任意两行都不具有相同的主键值;每一行都必须具有一个主键值( ...
    Cherryjs阅读 4,134评论 0 0
  • 我是一个极其害怕停下来的人,似乎节奏稍微倾向于慢,都会焦虑。 不知道你是否和我一样,哪怕可以慢慢走,都很怕停滞不前...
    王子月阅读 3,335评论 0 0
  • 拂过千帆 吻过波澜 你是自然的使者 阵阵清香 你是万物的精灵 ...
    形容词阅读 2,688评论 3 3