数据库操作:汇总数据(聚集函数)

我们经常需要汇总数据而不用把它们实际检索出来,为此MySQL提供了专门的函数。

聚集函数运行在行组上,计算和返回单个值的函数。

SQL聚集函数

1.AVG():返回某列的平均值;

2.COUNT():返回某列的行数;

3.MAX():返回某列的最大值;

4.MIN():返回某列的最小值;

5.SUM():返回某列之和。

SELECT AVG(prod_price) AS avg_price
FROM products;

返回products表中所有关于产品的平均价格。

AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。AVG()函数忽略列值为NULL的行。

 

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

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

SELECT COUNT(*) AS num_cust
FROM customers;

 

SELECT MAX(prod_price) AS max_price
FROM products;

MAX()返回products表中最贵的物品的价格。

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

在用于文本数据时,如果数据按相应的列排序,则MAX()返回最后一行。

MIN()的功能与MAX()功能相反。

 

SELECT SUM(quantity) AS item_ordered
FROM orderitems
WHERE order_num=2005;

返回order_num为2005的商品的总数。

 

SELECT SUM(item_price*quantity) AS total_price
FROM orderitems
WHERE order_num=2005;

返回order_num为2005的商品的总价钱。

 

以上五个聚集函数都可以如下使用:

1.对所有的行执行计算,指定ALL参数或不给参数(ALL是默认行为);

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

SELECT AVG(DISTINCT prod_price) AS avg_price
FROM products
WHERE vend_id=1003;

使用DISTINCT之后,prod_price只包含不同价格,多个物品具有相同的价格,则只计算一个。

DISTINCT不能用于COUNT(*),不能用于计算或表达式。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值