数据库having和聚合函数使用方法

数据库having和聚合函数使用方法,第1张

having 你可以认为是聚合函数的 where 部分,

使用聚合函数后,比如 avg(age) ,这是是不允许用where限定 avg(age)的,

而是用having avg(age)>21。

有聚合函数后,关于聚合函数的条件就用having。

最后一段的sql的目的是 选出年龄大于平均年龄的 学生的信息 ,但是是错误语句,少了group by。

这样的情况通常使用子查询,先筛选数据,然后再聚合,用聚合好的数据再去连接,速度基本要快很多。但是如果数据量巨大的话,需要引用临时表,比如先分组聚合,聚合后的数据放入临时表,使用临时表去关联,即可达到快速查询。

聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUPBY子句一同使用,SQLSERVER中具体有哪些聚合函数呢?我们来一一看一下:

1AVG返回指定组中的平均值,空值被忽略。

例:selectprd_no,avg(qty)fromsalesgroupbyprd_no

2COUNT返回指定组中项目的数量。

例:selectcount(prd_no)fromsales

3MAX返回指定数据的最大值。

例:selectprd_no,max(qty)fromsalesgroupbyprd_no

4MIN返回指定数据的最小值。

例:selectprd_no,min(qty)fromsalesgroupbyprd_no

5SUM返回指定数据的和,只能用于数字列,空值被忽略。

例:selectprd_no,sum(qty)fromsalesgroupbyprd_no

6COUNT_BIG返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。

例:selectcount_big(prd_no)fromsales

7GROUPING产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1当所添加的行不是由CUBE或ROLLUP产生时,输出值为0

例:selectprd_no,sum(qty),grouping(prd_no)fromsalesgroupbyprd_nowithrollup

8BINARY_CHECKSUM返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。

例:selectprd_no,binary_checksum(qty)fromsalesgroupbyprd_no

9CHECKSUM_AGG返回指定数据的校验值,空值被忽略。

例:selectprd_no,checksum_agg(binary_checksum())fromsalesgroupbyprd_no

10CHECKSUM返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。

11STDEV返回给定表达式中所有值的统计标准偏差。

例:selectstdev(prd_no)fromsales

12STDEVP返回给定表达式中的所有值的填充统计标准偏差。

例:selectstdevp(prd_no)fromsales

13VAR返回给定表达式中所有值的统计方差。

例:selectvar(prd_no)fromsales

14VARP返回给定表达式中所有值的填充的统计方差。

例:selectvarp(prd_no)fromsales

您是想问表单中怎么显示历史数据吗?方法如下:

1、新建一个聚合表,设置“数据来源”为“单表数据”,选择表单“合同管理”,设置好后点击“确定”。

2、选中关联查询字段,在“字段属性”处设置内容如下:关联表:选择聚合表“调用合同明细”;显示字段:添加公司名称、合同名称、合同金额。

3、点击“添加过滤条件”,添加过滤条件为:聚合表中的“公司名称”字段等于当前表单的“公司名称”字段,设置好点击“确定”。

如果你select语句用到统计函数如sum()、max()z则需要group by 分组,所有没有函数过的字段都需要列到group by 后面,如下面sql就可执行了

SELECT MAX(dbo学期表学期id),

dbo学期表[学年],

dbo学期表[学期],

dbo考试表[主键_考试ID],

dbo考试表[考试名称],

dbo考试表[考试时间],

dbo考试表[学期id]

FROM dbo学期表,dbo考试表

WHERE dbo学期表学期id = 考试表[学期id]

group by

dbo学期表[学年],

dbo学期表[学期],

dbo考试表[主键_考试ID],

dbo考试表[考试名称],

dbo考试表[考试时间],

dbo考试表[学期id]

ORDER BY dbo考试表[考试时间] desc

以上就是关于数据库having和聚合函数使用方法全部的内容,包括:数据库having和聚合函数使用方法、多表连接,分组聚合的SQL怎么优化、sql中常用的聚合函数有哪些(sql聚合函数)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9597727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存