更新时间:2024-04-30 21:14:26作者:佚名
1.什么是聚合函数? 在数据分析过程中,我们经常需要对一组数据进行计算,找出其最大值、最小值、平均值、总和和个数等,这种行为称为聚合分析; 而用来实现聚合分析的函数职场英语成绩查询,我们称之为聚合函数。 在SQL中,常用的聚合函数有SUM(求和)、MAX(最大值)、MIN(最小值)、AVG(平均值)和COUNT(计数)。 之前我们也分享过几个函数,比如IIF、INSTR等,那么职场英语成绩查询,聚合函数和这些函数有什么区别呢? 简单地说,聚合函数处理一组数据(一个或多个列)并返回单个结果; 而普通函数通常会处理一组数据中的每条记录并返回一组结果... 2 。 举个小栗子。
上图是某学校学生期末考试成绩表。 中文最高分:MAX(中文)AS 中文最高分FROM【分数表$】
数学最低分数:MIN(数学) AS 数学最低分数 FROM [分数表$]
四舍五入后英语平均分:ROUND(AVG(),2) AS 英语平均分 FROM [分数表$]
英语、语文、数学科目总成绩分别为:SUM(语文)AS语文总分、SUM(数学)AS数学总分、SUM(英语)AS英语总分FROM【成绩表$】
最高总分:MAX(语文+数学+英语)AS 最高总分FROM【成绩表$】
3.我们重点关注聚合函数COUNT,这个函数相当有趣。 3.1 COUNT(*)和COUNT(field) COUNT(*)可以返回指定表中记录的总行数(默认不包括表头行)。 需要注意的一点是,对于 Excel,它不会忽略空白行; 对于数据库来说,它不会忽略整行NULL值记录。 例如,在下面的语句中,计算结果是 8留学之路,而不是 7。计算结果包括第 5 行中的空行。 COUNT(*) AS 学生人数 FROM [成绩表$]
但当使用COUNT计算指定字段时,它会忽略Excel中的空白值和数据库中的NULL。 例如,在下面的语句中,计算结果为 7,忽略第 5 行的空行。 COUNT(name) AS of FROM [score table$]
Tips:Excel中的SQL中,尽量不要使用COUNT(*)语句,除非进行了条件过滤,例如使用WHERE子句。
这是因为在Excel中,SQL默认读取整个表格区域(可以简单理解为表格中已使用的单元格形成的最大矩形区域)。
例如,上例中的 * FROM [Grade Table$] 读取的是使用的单元格区域 A1:E9,而不是整个表格 - 但当使用单元格 F14 时,即使只填充了背景色,读取的区域SQL也会演变成A1:F14...这往往会产生不好的结果...
3.2 条件计数聚合函数结合WHERE子句可以实现多种条件统计。 例如,下面的语句可以计算通过中文的人数: COUNT(*) AS 中文通过的人数 FROM [score table$] WHERE >=60
更多关于WHERE子句的应用(单条件、多条件、模糊条件等)可以参考之前的文章:
Excel VBA+ADO+SQL入门教程007:如何使用SQL进行条件查询?
Excel VBA+ADO+SQL入门教程008:条件查询(第2部分)...
这里需要说明的是逻辑值(TRUE和FALSE)在SQL中的一个应用。 例如,下面的语句可以计算三科全部通过的人数: COUNT(*) AS 三科全部通过的人数 FROM [score table$] WHERE >=60 AND >=60 AND >=60
但上面的SQL语句也可以写成: COUNT(*) AS 三科全部通过的人数 FROM [成绩表$] WHERE (语文>=60)+(数学>=60)+(英语>=60 )=-3
负3到底是什么?
我们知道,在EXCEL工作表函数中,进行数学运算时,逻辑值TRUE等于1,FALSE等于0,但在Excel中的SQL中却不是这样。
在SQL中,逻辑值FALSE仍然等于0,但TRUE等于-1。 当三个条件都成立时,即-1+-1+-1,结果必须等于-3。 这可以用来确定这三个条件是否成立。
知道这个知识点有什么用呢? 例如这个问题:
计算通过三门科目中至少两门的学生人数。
使用逻辑值运算技巧,如下: COUNT(*) AS 至少通过两门科目的人数 FROM [成绩表$] WHERE (语文>=60)+(数学>=60)+(英语>=60) =60) +(数学>=60)+(英语>=60)