前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL学习之汇总数据之聚集函数

SQL学习之汇总数据之聚集函数

作者头像
郑小超.
发布2018-01-24 15:23:53
6160
发布2018-01-24 15:23:53
举报
文章被收录于专栏:GreenLeaves

一、

1、我们经常需要汇总数据而不用把他们实际检索出来,为此SQL提供了专门的函数,以便于分析数据和报表生成,这些函数的功能有:

(1)确定表中行数(或者满足单个条件或多个条件或包含某个特定值的行数)。

(2)获得表中某些行的和

(3)找出表列(或所有行或某些特定的行)的最大值、最小值、平均值。

上述功能都需要汇总表中的数据,而不需要实际数据本身。因此返回实际表数据纯属浪费时间和处理资源(更不用说带宽了)。

2、下面是SQL提供的5个常用的聚集函数

(1)AVG()      ---返回某列的平均值

(2)COUNT()      ---返回某列的行数

(3)MAX()      ---返回某列的最大值

(4)MIN()      ---返回某列的最小值

(5)SUM()      ---范回某列之和

如下代码:

代码语言:javascript
复制
select * from dbo.tb_order

现在有个需求,需要求出所有订单的单价和,下面是解决代码:

代码语言:javascript
复制
select SUM(price) from dbo.tb_order

ok,完成需求,拿到所有的单价之和!

3、下面是当我们使用上面5个聚集函数需要注意的地方

(1)MAX()和MIN()不仅可以找出最大/最小 的数值和日期值,许多DBMS(不是所有)允许将它们用来返回任意列(这里只的是任意数据类型)的最大/最小 值,包括返回文本的最大/最小值,在用于文本数据时,MAX()/MIN()返回目标列排序后的最后一行/最前面的行。

(2)MAX()和MIN()函数忽略列值为null的行

(3)当我们使用上面的聚集函数计算表中的列时,需要去掉一些重复的数据是可以使用DISTINCT,代码如下:

代码语言:javascript
复制
select * from dbo.tb_order

这是全部数据,现在需要ordercount列的总数,代码如下:

代码语言:javascript
复制
select COUNT(ordercount) from dbo.tb_order
image.png
image.png

结合上面两个检索的结果图,我们发现中间有很多的重复数据,下面是解决代码:

代码语言:javascript
复制
select COUNT(DISTINCT ordercount) from dbo.tb_order
image.png
image.png

ok,完成需求!把重复的都过滤掉了.

注意:DISTINCT不能用于COUN(*),只能用于COUNT(),因为DISTICT只能作用于列名,也就是说DISTICT 后面只能跟列名!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-08-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档