07-SQLSERVER聚合函数

07-SQLSERVER聚合函数,第1张

SQL SERVER中聚合函数主要有:

(1)求员工总人数

(2)求最大值,求最高工资

(3)求最小时,求最小工资

(4)求和,求所有员工的工资总和

(5)求平均值,求所有员工的平均工资

ROUND函数用法:

(6)求数量,最大值,最小值,总和,平均值,在一行显示

(7)查询出武汉地区的员工人数,总工资,最高工资,最低工资和平均工资

(8)求出工资比平均工资高的人员信息

(9)求数量,年龄最大值,年龄最小值,年龄总和,年龄平均值,在一行显示

(10)计算出月薪在10000 以上的男性员工的最大年龄,最小年龄和平均年龄

(11)统计出所在地在“武汉或上海”的所有女员工数量以及最大年龄,最小年龄和平均年龄

(12)求出年龄比平均年龄高的人员信息

GETDATE() 返回当前的日期和时间

DATEPART() 返回日期/时间的单独部分

DATEADD() 返回日期中添加或减去指定的时间间隔

DATEDIFF() 返回两个日期直接的时间

DATENAME() 返回指定日期的指定日期部分的整数

CONVERT() 返回不同格式的时间

示例:

时间格式控制字符串:

可以直接用sno分组,但是select后面能用的字段只能是聚合函数(字段)或者是groupby子句中的字段。

如果在group by中不用sname,你可以这样写,但是你要看是否符合题目要求。

select min(sname)

from student s join sc

on ssno=csno

group by scsno

having count(scsno)>3

varchar数据类型不支持做聚合运算,你可以试试看修改数据表结构,把数据类型从varchar改为decimal(18,2)、int、float等可计算的数据类型,最好给个默认值0,如果保存的时候还提示报错,那一般是因为该字段下有些记录为空或者Null了,建议先将该字段所有空值改成0再修改字段的数据类型。

SQL语句函数baicount(),如果括号中是列名称,是忽略空值NULL的,即返回列的值的数目,不包含NULL值。

COUNT函数,用于Excel中对给定数据集合或者单元格区域中数据的个数进行计数,其语法结构为COUNT(value1,value2, )。COUNT函数只能对数字数据进行统计,对于空单元格、逻辑值或者文本数据将被忽略,因此可以利用该函数来判断给定的单元格区域中是否包含空单元格。

扩展资料:

如果参数是一个数组或引用,那么只统计数组或引用中的数字;数组中或引用的空单元格、逻辑值、文字或错误值都将忽略。具体如下:

如果参数为数字、日期或者代表数字的文本(例如,用引号引起的数字,如 "1"),则将被计算在内。

逻辑值和直接键入到参数列表中代表数字的文本被计算在内。

如果参数为错误值或不能转换为数字的文本,则不会被计算在内。

如果参数为数组或引用,则只计算数组或引用中数字的个数。不会计算数组或引用中的空单元格、逻辑值、文本或错误值。

count(1),其实就是计算一共有多少符合条件的行。

1并不是表示第一个字段,而是表示一个固定值。

其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1。

同理,count(2),也可以,得到的值完全一样,count('x'),count('y')都是可以的。一样的理解方式。在你这个语句理都可以使用,返回的值完全是一样的。就是计数。

count(),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。

返回数据集统计方差的聚合函数。

这些函数返回 NUMERIC 数据类型,除非表达式是数据类型 DOUBLE 。

如果 expression 为 DOUBLE ,则返回 DOUBLE 。

这三个方差聚合函数在丢弃 NULL 值后返回表达式值的统计方差。

也就是说,从数据集的平均值变化的量,表示为一个正数。

返回值越大,值的数据集的变化就越大。

SQL还提供聚合函数来返回对应于每个方差函数的标准偏差。

在这种统计差异的推导过程中有一些细微的差异:

方差计算为:

VAR_POP 的计算是:

这些方差聚合函数可以在引用表或视图的 SELECT 查询或子查询中使用。

它们可以在 SELECT 列表或 HAVING 子句中与普通字段值一起出现。

这些方差聚合函数不能在WHERE子句中使用。

它们不能在 JOIN 的 ON 子句中使用,除非 SELECT 是子查询。

这些方差聚合函数返回数据类型NUMERIC的值,精度为 36 ,刻度为 17 ,除非表达式是数据类型 DOUBLE ,在这种情况下,函数返回数据类型 DOUBLE 。

这些方差聚合函数通常应用于具有数值的字段或表达式。

它们将非数值值(包括空字符串( " ))计算为零( 0 )。

这些方差聚合函数忽略数据字段中的 NULL 值。

如果查询没有返回行,或者返回的所有行的数据字段值为 NULL ,则返回 NULL 。

与所有聚合函数一样,统计方差函数可以采用一个可选的 DISTINCT 子句。

方差( DISTINCT col1 )返回那些不同(唯一)的 col1 字段值的方差。

方差( DISTINCT BY(col2) col1 )返回记录中col1字段值的方差,其中col2值是不同的(唯一的)。

但是请注意,不同的col2值可能包含一个单独的NULL值。

与所有聚合函数一样,方差函数总是返回数据的当前状态,包括未提交的更改,而不管当前事务的隔离级别如何。

下面的示例使用方差返回 sampleemployee 中雇员年龄的方差,以及由一个或多个雇员表示的不同年龄的方差:

下面的示例使用 VAR_POP 返回 sampleemployee 中雇员年龄的总体差异,以及由一个或多个雇员表示的不同年龄的差异:

a) 函数 AVG([DISTINCT] expr )

函数使用说明:返回 expr 的平均值。 DISTINCT 选项可用于返回 expr 的不同值的平均值。

b) 函数 BIT_AND(expr )

函数使用说明:返回expr 中所有比特的 bitwise AND 。计算执行的精确度为64 比特(BIGINT) 。若找不到匹配的行,则这个函数返回1844 ( 这是无符号 BIGINT 值,所有比特被设置为 1 )。

c) 函数 BIT_OR(expr )

函数使用说明:返回expr 中所有比特的bitwise OR 。计算执行的精确度为64 比特(BIGINT) 。若找不到匹配的行,则函数返回 0 。

d) 函数BIT_XOR(expr )

函数使用说明:返回expr 中所有比特的bitwise XOR 。计算执行的精确度为64 比特(BIGINT) 。若找不到匹配的行,则函数返回 0 。

e) 函数 COUNT(expr )

函数使用说明:返回SELECT 语句检索到的行中非NULL 值的数目。若找不到匹配的行,则COUNT() 返回 0

f) 函数 COUNT(DISTINCT expr ,[expr ])

函数使用说明:返回不同的非NULL 值数目。若找不到匹配的项,则COUNT(DISTINCT) 返回 0

g) 函数 GROUP_CONCAT(expr )

函数使用说明:该函数返回带有来自一个组的连接的非NULL 值的字符串结果。其完整的语法如下所示:

GROUP_CONCAT([DISTINCT] expr [,expr ] [ORDER BY {unsigned_integer | col_name | expr }

[ASC | DESC] [,col_name ]]

[SEPARATOR str_val ])

h) 函数 MIN([DISTINCT] expr ), MAX([DISTINCT] expr )

函数使用说明:返回 expr 的最小值和最大值。 MIN() 和 MAX() 的取值可以是一个字符串参数;在这些情况下, 它们返回最小或最大字符串值。

i) 函数 STD(expr ) STDDEV(expr )

函数使用说明:返回 expr 的总体标准偏差。这是标准 SQL 的延伸。这个函数的 STDDEV() 形式用来提供和 Oracle 的兼容性。可使用标准 SQL 函数 STDDEV_POP() 进行代替

j) 函数 STDDEV_POP(expr )

函数使用说明:返回expr 的总体标准偏差(VAR_POP() 的平方根) 。你也可以使用 STD() 或STDDEV(), 它们具有相同的意义,然而不是标准的 SQL 。若找不到匹配的行,则STDDEV_POP() 返回 NULL

k) 函数 STDDEV_SAMP(expr )

函数使用说明:返回expr 的样本标准差 ( VAR_SAMP() 的平方根) 。若找不到匹配的行,则STDDEV_SAMP() 返回 NULL

l) 函数 SUM([DISTINCT] expr )

函数使用说明:返回expr 的总数。 若返回集合中无任何行,则 SUM() 返回NULL 。DISTINCT 关键词可用于 MySQL 51 中,求得expr 不同值的总和。 若找不到匹配的行,则SUM() 返回 NULL

m) 函数 VAR_POP(expr )

函数使用说明:返回 expr 总体标准方差。它将行视为总体,而不是一个样本, 所以它将行数作为分母。你也可以使用 VARIANCE(), 它具有相同的意义然而不是 标准的 SQL

n) 函数 VAR_SAMP(expr )

函数使用说明:返回expr 的样本方差。更确切的说,分母的数字是行数减去1 。若找不到匹配的行,则VAR_SAMP() 返回NULL

o) 函数VARIANCE(expr )

函数使用说明:返回expr 的总体标准方差。这是标准SQL 的延伸。可使用标准SQL 函数 VAR_POP() 进行代替。若找不到匹配的项,则VARIANCE() 返回NULL

聚合不能嵌套,可以放到子查询里面。

select max(t) from

(select sum(btotal) as t

from book

group by bpublish);

以上就是关于07-SQLSERVER聚合函数全部的内容,包括:07-SQLSERVER聚合函数、在SQL中的聚合函数、在sql数据库中,我用聚合函数sum,为什么显示 *** 作数据类型varchar对于sum运算符无效啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9400406.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存