最新消息:Rockyxia Web技术博客全新改版,响应式布局满足各种设备各种尺寸的访问需求。

SQL从头学(二):sql的汇总函数COUNT SUM AVG MAX MIN等

数据库 rockyxia 20737浏览 0评论

写在前面

记得有次去一个公司面试,当时他们老板不在,一个女的估计是他们的文员,简单问了我的情况后,拿出一份卷子来给我做,上面关于sql的内容相当多,当时考的是一塌糊涂啊,现在得赶紧学习学习咯!

正文开始

函数COUNT SUM AVG MAX MIN 是由ANSI 标准所制定的。大多数的SQL 解释器都对汇总函数进行了扩充。

COUNT

此函数将返回满足WHERE 条件子句中记录的个数,例如你想知道都有哪一个球员的击球数小于350, 可以这样做:

SELECT COUNT(*) FROM TEAMSTATS WHERE HITS/AB <.35;

为了使这段代码更易读可以使用别名

SELECT COUNT(*) NUM_BELOW_350 FROM TEAMSTATS WHERE HITS/AB<.35;

如果我们用列名来替换掉括号中的星号时会结果与原来有什么不同呢?试一下:

SELECT COUNT(NAME) NUM_BELOW_350 FROM TEAMSTATS WHERE HITS/AB<.35;

结果是一样的,都是返回满足条件的记录的个数。

因为你所选择的NAME 列与WHERE 子句并不相关,如果你在使用count时无WHERE 子句,那么它将会返回表中的所有记录的个数。

SUM

SUM 就如同它的本意一样,它返回某一列的所有数值的和。

SELECT SUM(SINGLES) TOTAL_SINGLES FROM TEAMSTATS;

此语句很容易理解:

为取TEAMSTATS表中的SINGLES列 的和 在新窗口中以TOTAL_SINGLES为列名显示。

如果想得到多个列的和,可按如下所做:

SELECT SUM(SINGLES) TOTAL_SINGLES, SUM(DOUBLES) TOTAL_DOUBLES, SUM(TRIPLES) TOTAL_TRIPLES, SUM(HR) TOTAL_HR FROM TEAMSTATS;

同时取4个列的合并分别重命名。

类似地,如果想找一下所有的点数在300(包括300)以上的的队员,则语句如下:

SELECT SUM(SINGLES) TOTAL_SINGLES, SUM(DOUBLES) TOTAL_DOUBLES,SUM(TRIPLES) TOTAL_TRIPLES, SUM(HR) TOTAL_HR FROM TEAMSTATS WHERE HITS/AB >=.300;

想估计一下一个球队的平均中球率:

SELECT SUM(HITS)/SUM(AB) TEAM_AVERAGE FROM TEAMSTATS;

SUM 只能处理数字;

如果它的处理目标不是数字,则会收到错误提示。

AVG

可以返回某一列的平均值。如果你想知道漏球的平均数请看下例:

SELECT AVG(SO) AVE_STRIKE_OUTS FROM TEAMSTATS;

下边的例子反映了SUM 与AVG 的不同之处:

SELECT AVG(HITS/AB) TEAM_AVERAGE FROM TEAMSTATS;

这样的结果与SUM的不一样,正确的输入应该是:

SELECT AVG(HITS)/AVG(AB) TEAM_AVERAGE FROM TEAMSTATS;

这样就与SUM的结果一样了。

AVG 函数也只能对数字进行计算。

MAX

如果你想知道某一列中的最大值,请使用MAX。例如:

SELECT MAX(HITS) FROM TEAMSTATS;

取HITS列中的最大值。

SELECT NAME FROM TEAMSTATS WHERE HITS=MAX(HITS);

这是个错误的语法。

原因是汇总函数无法在WHERE 子句中使用。

MAX可以用在字符串查询中,它将返回字符最多的字符串。

MIN

MIN 与MAX 类似它返回一列中的最小数值。

用法也与MAX相似。这里就不多举例。

你可以同时使用MAX 和MIN 函数以获得数值的界限,例如:

SELECT MIN(AB) MAX(AB) FROM TEAMSTATS;

VARIANCE

VARIANCE (方差)不是标准中所定义,的但它却是统计领域中的一个至关重要的数值,使用方法如下:

SELECT VARIANCE(HITS) FROM TEAMSTATS;

VARIANCE 也是一个只应用于数值对象的函数。

STDDEV

这是最后一个统计函数,STDDEV 返回某一列数值的标准差,它的应用示例如下:

SELECT STDDEV(HITS) FROM TEAMSTATS;

同样此函数也只对数值对象起作用。

这些统计函数也可以在一个语句中同时使用

SELECT COUNT(AB), AVG(AB), MIN(AB), MAX(AB), STDDEV(AB),VARIANCE(AB), SUM(AB) FROM TEAMSTATS;

这里一共提出了7个函数,前五个是我们比较常用的函数,后面两个我们并不常用,所以大家在学习时,务必要牢记前五个我们最长用的汇总函数,至于后面的两个根据我们自身的情况和个人的爱好去决定要不要学习他,但是我们要知道有这样的函数存在!

转载请注明:Rockyxia Web技术博客 » SQL从头学(二):sql的汇总函数COUNT SUM AVG MAX MIN等
感谢阅读,如果您发现文章中有表述不准确,欢迎提出来,也欢迎交流相关问题,你可以去这里进行一对一问答交流。

(本篇完)