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

一、

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

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

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

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

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

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

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

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

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

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

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

如下代码:

select * from dbo.tb_order

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

select SUM(price) from dbo.tb_order

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

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

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

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

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

select * from dbo.tb_order

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

select COUNT(ordercount) from dbo.tb_order
image.png

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

select COUNT(DISTINCT ordercount) from dbo.tb_order
image.png

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏阮一峰的网络日志

XOR 加密简介

本文介绍一种简单高效、非常安全的加密方法:XOR 加密。 ? 一、 XOR 运算 逻辑运算之中,除了 AND 和 OR,还有一种 XOR 运算,中文称为"异或运...

4096
来自专栏zhisheng

#每日一题#4

4、已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是() A、head(tail(LS)) B、tail(...

3486
来自专栏行者常至

006.python科学计算库matplotlib(上)

版权声明:本文为博主原创文章,允许转载,请标明出处。 https://blog.csdn.net/qwdafedv/article/deta...

751
来自专栏菩提树下的杨过

“AS3.0高级动画编程”学习:第三章等角投影(下)

在上一篇的最后,我们成功的用“等角投影”模拟出了立体空间的盒子模型,但是很快你就会发现这个示例的bug ? bug1:在已经有box的地方,再点击,将会重复创建...

2327
来自专栏转载gongluck的CSDN博客

FFmpeg菜鸡互啄#第6篇#音频帧格式转换(重采样)

关键步骤 struct SwrContext* swr_covert_ctx = swr_alloc_set_opts(NULL, av_get_def...

7625
来自专栏数说工作室

统计师的Python日记【第6天:数据合并】

本文是【统计师的Python日记】第6天的日记 回顾一下: 第1天学习了Python的基本页面、操作,以及几种主要的容器类型。 第2天学习了python的函数、...

4798
来自专栏灯塔大数据

每周学点大数据 | No.42 Hash join

No.42期 Hash join Mr. 王:那我们就来看看 Hash join 具体是怎么做的吧。 两个表直接拿过来,我们不对其做任何排序和预处理。对这两...

3046
来自专栏极客猴

Django 学习笔记之模型高级用法(下)

除了抽象模型,在模型中定义的字段都会成为表中的列。如果我们需要给模型指定其他一些信息,例如排序方式、数据库表名等,就需要用到 Meta。Meta 是一个可选的类...

962
来自专栏linux、Python学习

必备神技能 | MySQL 查找删除重复行

本文讲述如何查找数据库里重复的行。这是初学者十分普遍遇到的问题。方法也很简单。这个问题还可以有其他演变,例如,如何查找“两字段重复的行”(#mysql IRC ...

910
来自专栏落影的专栏

iOS开发-OpenGL ES入门教程1

前言 这里是一篇新手教程,环境是Xcode7+OpenGL ES 2.0,目标写一个OpenGL ES的hello world。 OpenGL ES系列教程在...

3359

扫码关注云+社区

领取腾讯云代金券